Author: toad
Date: 2008-12-04 17:57:30 +0000 (Thu, 04 Dec 2008)
New Revision: 24042
Modified:
trunk/freenet/src/freenet/node/FNPPacketMangler.java
trunk/freenet/src/freenet/node/OutgoingPacketMangler.java
trunk/freenet/src/freenet/node/PacketTracker.java
trunk/freenet/src/freenet/node/PeerNode.java
Log:
Remove blocking allocate-new-packet-number. It is never called, and probably
would be dangerous due to realSeqNumber being based on nextPacketNumber.
Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java 2008-12-04
17:33:13 UTC (rev 24041)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java 2008-12-04
17:57:30 UTC (rev 24042)
@@ -2038,12 +2038,12 @@
/* (non-Javadoc)
* @see
freenet.node.OutgoingPacketMangler#processOutgoingOrRequeue(freenet.node.MessageItem[],
freenet.node.PeerNode, boolean, boolean)
*/
- public boolean processOutgoingOrRequeue(MessageItem[] messages,
PeerNode pn, boolean neverWaitForPacketNumber, boolean dontRequeue, boolean
onePacket) throws BlockedTooLongException {
+ public boolean processOutgoingOrRequeue(MessageItem[] messages,
PeerNode pn, boolean dontRequeue, boolean onePacket) throws
BlockedTooLongException {
String requeueLogString = "";
if(!dontRequeue) {
requeueLogString = ", requeueing";
}
- if(logMINOR) Logger.minor(this, "processOutgoingOrRequeue
"+messages.length+" messages for "+pn+" ("+neverWaitForPacketNumber+ ')');
+ if(logMINOR) Logger.minor(this, "processOutgoingOrRequeue
"+messages.length+" messages for "+pn);
byte[][] messageData = new byte[messages.length][];
MessageItem[] newMsgs = new MessageItem[messages.length];
KeyTracker kt = pn.getCurrentKeyTracker();
@@ -2155,7 +2155,7 @@
(messageData.length < 256)) {
mi_name = null;
try {
- int size = innerProcessOutgoing(messageData, 0,
messageData.length, length, pn, neverWaitForPacketNumber, callbacks, priority);
+ int size = innerProcessOutgoing(messageData, 0,
messageData.length, length, pn, callbacks, priority);
int totalMessageSize = 0;
for(int i=0;i<messageData.length;i++)
totalMessageSize += messageData[i].length;
int overhead = size - totalMessageSize;
@@ -2210,7 +2210,7 @@
mi_name = null;
try {
// FIXME regenerate
callbacks and priority!
- int size =
innerProcessOutgoing(messageData, lastIndex, i-lastIndex, length, pn,
neverWaitForPacketNumber, callbacks, priority);
+ int size =
innerProcessOutgoing(messageData, lastIndex, i-lastIndex, length, pn,
callbacks, priority);
int totalMessageSize =
0;
for(int
j=lastIndex;j<i;j++) totalMessageSize += messageData[j].length;
int overhead = size -
totalMessageSize;
@@ -2266,7 +2266,7 @@
* @throws PacketSequenceException
*/
private int innerProcessOutgoing(byte[][] messageData, int start, int
length, int bufferLength,
- PeerNode pn, boolean neverWaitForPacketNumber,
AsyncMessageCallback[] callbacks, short priority) throws NotConnectedException,
WouldBlockException, PacketSequenceException {
+ PeerNode pn, AsyncMessageCallback[] callbacks, short
priority) throws NotConnectedException, WouldBlockException,
PacketSequenceException {
if(logMINOR) Logger.minor(this,
"innerProcessOutgoing(...,"+start+ ',' +length+ ',' +bufferLength+
','+callbacks.length+')');
byte[] buf = new byte[bufferLength];
buf[0] = (byte)length;
@@ -2279,7 +2279,7 @@
System.arraycopy(data, 0, buf, loc, len);
loc += len;
}
- return processOutgoingPreformatted(buf, 0, loc, pn,
neverWaitForPacketNumber, callbacks, priority);
+ return processOutgoingPreformatted(buf, 0, loc, pn, callbacks,
priority);
}
/* (non-Javadoc)
@@ -2295,7 +2295,7 @@
* the key changes.
* @throws PacketSequenceException
*/
- int processOutgoingPreformatted(byte[] buf, int offset, int length,
PeerNode peer, boolean neverWaitForPacketNumber, AsyncMessageCallback[]
callbacks, short priority) throws NotConnectedException, WouldBlockException,
PacketSequenceException {
+ int processOutgoingPreformatted(byte[] buf, int offset, int length,
PeerNode peer, AsyncMessageCallback[] callbacks, short priority) throws
NotConnectedException, WouldBlockException, PacketSequenceException {
KeyTracker last = null;
while(true) {
try {
@@ -2308,8 +2308,7 @@
throw new NotConnectedException();
}
PacketTracker packets = tracker.packets;
- int seqNo = neverWaitForPacketNumber ?
packets.allocateOutgoingPacketNumberNeverBlock() :
- packets.allocateOutgoingPacketNumber();
+ int seqNo =
packets.allocateOutgoingPacketNumberNeverBlock();
return processOutgoingPreformatted(buf, offset,
length, tracker, seqNo, callbacks, priority);
} catch (KeyChangedException e) {
Logger.normal(this, "Key changed(2) for
"+peer.getPeer());
Modified: trunk/freenet/src/freenet/node/OutgoingPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/OutgoingPacketMangler.java 2008-12-04
17:33:13 UTC (rev 24041)
+++ trunk/freenet/src/freenet/node/OutgoingPacketMangler.java 2008-12-04
17:57:30 UTC (rev 24042)
@@ -30,7 +30,7 @@
* @throws BlockedTooLongException
*/
public boolean processOutgoingOrRequeue(MessageItem[] messages,
PeerNode pn,
- boolean neverWaitForPacketNumber, boolean dontRequeue,
boolean onePacketOnly) throws BlockedTooLongException;
+ boolean dontRequeue, boolean onePacketOnly) throws
BlockedTooLongException;
/**
* Resend a single packet.
Modified: trunk/freenet/src/freenet/node/PacketTracker.java
===================================================================
--- trunk/freenet/src/freenet/node/PacketTracker.java 2008-12-04 17:33:13 UTC
(rev 24041)
+++ trunk/freenet/src/freenet/node/PacketTracker.java 2008-12-04 17:57:30 UTC
(rev 24042)
@@ -680,40 +680,6 @@
}
}
- /**
- * @return A packet number for a new outgoing packet.
- * This method will block until one is available if
- * necessary.
- * @throws KeyChangedException if the thread is interrupted when waiting
- */
- public int allocateOutgoingPacketNumber() throws KeyChangedException,
NotConnectedException {
- int packetNumber;
- if(!pn.isConnected())
- throw new NotConnectedException();
- synchronized(this) {
- if(isDeprecated)
- throw new KeyChangedException();
- packetNumber = nextPacketNumber++;
- if(logMINOR)
- Logger.minor(this, "Allocated " + packetNumber
+ " in allocateOutgoingPacketNumber for " + this);
- }
- while(true) {
- try {
- sentPacketsContents.lock(packetNumber);
- if(logMINOR)
- Logger.minor(this, "Locked " +
packetNumber);
- synchronized(this) {
- timeWouldBlock = -1;
- }
- return packetNumber;
- } catch(InterruptedException e) {
- synchronized(this) {
- if(isDeprecated)
- throw new KeyChangedException();
- }
- }
- }
- }
private long timeWouldBlock = -1;
static final long MAX_WOULD_BLOCK_DELTA = 10 * 60 * 1000;
Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java 2008-12-04 17:33:13 UTC
(rev 24041)
+++ trunk/freenet/src/freenet/node/PeerNode.java 2008-12-04 17:57:30 UTC
(rev 24042)
@@ -4176,7 +4176,7 @@
// Send packets, right now, blocking, including any
active notifications
// Note that processOutgoingOrRequeue will drop
messages from the end
// if necessary to fit the messages into a single
packet.
-
if(!getOutgoingMangler().processOutgoingOrRequeue(messages.toArray(new
MessageItem[messages.size()]), this, true, false, true)) {
+
if(!getOutgoingMangler().processOutgoingOrRequeue(messages.toArray(new
MessageItem[messages.size()]), this, false, true)) {
if(mustSendPacket) {
if(!sendAnyUrgentNotifications(false))
sendAnyUrgentNotifications(true);
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs