Author: robert Date: 2007-12-19 16:06:22 +0000 (Wed, 19 Dec 2007) New Revision: 16716
Modified:
trunk/freenet/src/freenet/node/CHKInsertSender.java
Log:
procedurize setTransferTimeout
Modified: trunk/freenet/src/freenet/node/CHKInsertSender.java
===================================================================
--- trunk/freenet/src/freenet/node/CHKInsertSender.java 2007-12-19 15:32:05 UTC
(rev 16715)
+++ trunk/freenet/src/freenet/node/CHKInsertSender.java 2007-12-19 16:06:22 UTC
(rev 16716)
@@ -72,10 +72,7 @@
backgroundTransfers.notifyAll();
}
if(!success) {
- synchronized(CHKInsertSender.this) {
- transferTimedOut = true;
- CHKInsertSender.this.notifyAll();
- }
+ setTransferTimedOut();
}
}
@@ -89,10 +86,7 @@
backgroundTransfers.notifyAll();
}
if(!success) {
- synchronized(CHKInsertSender.this) {
- transferTimedOut = true;
- CHKInsertSender.this.notifyAll();
- }
+ setTransferTimedOut();
}
}
@@ -509,6 +503,16 @@
hasForwardedRejectedOverload = true;
notifyAll();
}
+
+ private void setTransferTimedOut() {
+ if (transferTimedOut) return;
+ synchronized(this) {
+ if(!transferTimedOut) {
+ transferTimedOut = true;
+ notifyAll();
+ }
+ }
+ }
/**
* Finish the insert process. Will set status, wait for underlings to
complete, and report success
@@ -628,12 +632,10 @@
// Wait for the outgoing transfers to complete.
if(!waitForCompletedTransfers(transfers)) {
- synchronized(CHKInsertSender.this) {
- transferTimedOut = true; // probably,
they disconnected
- return;
- }
+ setTransferTimedOut();
+ return;
}
-
+
long transfersCompletedTime =
System.currentTimeMillis();
// Wait for acknowledgements from each node, or
timeouts.
@@ -648,11 +650,8 @@
long now = System.currentTimeMillis();
timeout = (int)Math.min(Integer.MAX_VALUE,
(transfersCompletedTime + TRANSFER_COMPLETION_ACK_TIMEOUT) - now);
if(timeout <= 0) {
- synchronized(CHKInsertSender.this) {
Logger.error(this, "Timed out
waiting for transfers to complete on "+uid);
- transferTimedOut = true;
-
//CHKInsertSender.this.notifyAll();
- }
+ setTransferTimedOut();
return;
}
@@ -711,12 +710,7 @@
boolean
anyTimedOut = m.getBoolean(DMT.ANY_TIMED_OUT);
transfers[i].receivedNotice(!anyTimedOut);
if(anyTimedOut)
{
-
synchronized(CHKInsertSender.this) {
-
if(!transferTimedOut) {
-
transferTimedOut = true;
-
CHKInsertSender.this.notifyAll();
-
}
- }
+
setTransferTimedOut();
}
processed =
true;
break;
