Author: robert
Date: 2007-12-20 20:02:25 +0000 (Thu, 20 Dec 2007)
New Revision: 16752

Modified:
   trunk/freenet/src/freenet/node/InsertHandler.java
Log:
wait for receive before transmit


Modified: trunk/freenet/src/freenet/node/InsertHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/InsertHandler.java   2007-12-20 19:24:17 UTC 
(rev 16751)
+++ trunk/freenet/src/freenet/node/InsertHandler.java   2007-12-20 20:02:25 UTC 
(rev 16752)
@@ -298,7 +298,17 @@
      * verifies, then commit it.
      */
     private void finish(int code) {
-       if(logMINOR) Logger.minor(this, "Finishing");
+       if(logMINOR) Logger.minor(this, "Waiting for receive");
+               synchronized(this) {
+                       while(receiveStarted && !receiveCompleted) {
+                               try {
+                                       wait(100*1000);
+                               } catch (InterruptedException e) {
+                                       // Ignore
+                               }
+                       }
+       }
+               
         maybeCommit();

         if(logMINOR) Logger.minor(this, "Waiting for completion");
@@ -332,18 +342,6 @@
                        // May need to commit anyway...
                }
         }
-
-       synchronized(this) {
-               if(receiveStarted) {
-                       while(!receiveCompleted) {
-                               try {
-                                               wait(100*1000);
-                                       } catch (InterruptedException e) {
-                                               // Ignore
-                                       }
-                       }
-               }
-       }

         if(code != CHKInsertSender.TIMED_OUT && code != 
CHKInsertSender.GENERATED_REJECTED_OVERLOAD && 
                        code != CHKInsertSender.INTERNAL_ERROR && code != 
CHKInsertSender.ROUTE_REALLY_NOT_FOUND &&


Reply via email to