Author: toad
Date: 2007-04-14 19:54:13 +0000 (Sat, 14 Apr 2007)
New Revision: 12713
Modified:
trunk/freenet/src/freenet/node/CHKInsertSender.java
Log:
sync fixes
Modified: trunk/freenet/src/freenet/node/CHKInsertSender.java
===================================================================
--- trunk/freenet/src/freenet/node/CHKInsertSender.java 2007-04-14 19:50:46 UTC
(rev 12712)
+++ trunk/freenet/src/freenet/node/CHKInsertSender.java 2007-04-14 19:54:13 UTC
(rev 12713)
@@ -562,23 +562,23 @@
}
// Now wait for transfers, or for downstream transfer notifications.
if(cw != null) {
+ synchronized(this) {
while(!allTransfersCompleted) {
try {
- synchronized (this) {
- wait(10*1000);
- }
+ wait(10*1000);
} catch (InterruptedException e) {
// Try again
}
}
+ }
} else {
if(logMINOR) Logger.minor(this, "No completion waiter");
// There weren't any transfers
+ synchronized(this) {
allTransfersCompleted = true;
+ notifyAll();
+ }
}
- synchronized (this) {
- notifyAll();
- }
if(logMINOR) Logger.minor(this, "Returning from finish()");
}
@@ -700,7 +700,10 @@
if(!waitingForAny) {
// All are disconnected
- allTransfersCompleted = true;
+ synchronized(CHKInsertSender.this) {
+ allTransfersCompleted = true;
+
CHKInsertSender.this.notifyAll();
+ }
return;
}
@@ -844,7 +847,7 @@
}
}
- public boolean completed() {
+ public synchronized boolean completed() {
return allTransfersCompleted;
}