Author: toad
Date: 2006-06-01 16:49:26 +0000 (Thu, 01 Jun 2006)
New Revision: 8967
Modified:
trunk/freenet/
trunk/freenet/src/freenet/client/async/SplitFileFetcher.java
trunk/freenet/src/freenet/node/Version.java
Log:
766: Avoid some nasty nested locking (related to deadlock in Spider). Also
deploy other recent changes.
Property changes on: trunk/freenet
___________________________________________________________________
Name: svn:ignore
- freenet-*
build
bin
+
freenet-*
build
bin
lib
Modified: trunk/freenet/src/freenet/client/async/SplitFileFetcher.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileFetcher.java
2006-06-01 14:08:58 UTC (rev 8966)
+++ trunk/freenet/src/freenet/client/async/SplitFileFetcher.java
2006-06-01 16:49:26 UTC (rev 8967)
@@ -172,6 +172,7 @@
public void segmentFinished(SplitFileFetcherSegment segment) {
Logger.minor(this, "Finished segment: "+segment);
+ boolean alreadyFinished = false;
synchronized(this) {
boolean allDone = true;
for(int i=0;i<segments.length;i++)
@@ -180,15 +181,17 @@
allDone = false;
}
if(allDone) {
- if(allSegmentsFinished)
+ if(allSegmentsFinished) {
Logger.error(this, "Was already
finished! (segmentFinished("+segment+")");
- else {
+ alreadyFinished = true;
+ } else {
allSegmentsFinished = true;
- finish();
}
}
notifyAll();
}
+ if(!alreadyFinished)
+ finish();
}
private void finish() {
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-06-01 14:08:58 UTC (rev
8966)
+++ trunk/freenet/src/freenet/node/Version.java 2006-06-01 16:49:26 UTC (rev
8967)
@@ -18,7 +18,7 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 765;
+ private static final int buildNumber = 766;
/** Oldest build of Fred we will talk to */
private static final int lastGoodBuild = 765;