Author: toad
Date: 2005-11-24 19:36:52 +0000 (Thu, 24 Nov 2005)
New Revision: 7583
Modified:
trunk/freenet/src/freenet/node/InsertSender.java
trunk/freenet/src/freenet/node/Version.java
Log:
204:
Insert not finished until *ALL* transfers are completed.
Modified: trunk/freenet/src/freenet/node/InsertSender.java
===================================================================
--- trunk/freenet/src/freenet/node/InsertSender.java 2005-11-24 18:14:24 UTC
(rev 7582)
+++ trunk/freenet/src/freenet/node/InsertSender.java 2005-11-24 19:36:52 UTC
(rev 7583)
@@ -1,6 +1,8 @@
package freenet.node;
import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
import freenet.io.comm.DMT;
import freenet.io.comm.DisconnectedException;
@@ -58,8 +60,7 @@
final double closestLocation;
final long startTime;
private BlockTransmitter bt;
- private Sender s;
- private Thread senderThread;
+ private LinkedList senderThreads;
private int status = -1;
static final int NOT_FINISHED = -1;
@@ -187,10 +188,11 @@
Logger.minor(this, "Sending data");
if(receiveFailed) return;
- s = new Sender();
- senderThread = new Thread(s);
+ Sender s = new Sender();
+ Thread senderThread = new Thread(s);
senderThread.setDaemon(true);
senderThread.start();
+ senderThreads.add(senderThread);
if(receiveFailed) return;
try {
@@ -304,7 +306,8 @@
throw new IllegalStateException("finish() called with "+code+"
when was already "+status);
status = code;
- if(senderThread != null) {
+ for(Iterator i = senderThreads.iterator();i.hasNext();) {
+ Thread senderThread = (Thread) i.next();
while(senderThread.isAlive()) {
try {
senderThread.join();
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2005-11-24 18:14:24 UTC (rev
7582)
+++ trunk/freenet/src/freenet/node/Version.java 2005-11-24 19:36:52 UTC (rev
7583)
@@ -20,10 +20,10 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- public static final int buildNumber = 203;
+ public static final int buildNumber = 204;
/** Oldest build of Fred we will talk to */
- public static final int lastGoodBuild = 203;
+ public static final int lastGoodBuild = 204;
/** The highest reported build of fred */
public static int highestSeenBuild = buildNumber;