Author: toad
Date: 2009-02-12 14:17:42 +0000 (Thu, 12 Feb 2009)
New Revision: 25593

Modified:
   branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
   branches/db4o/freenet/src/freenet/client/async/PersistentChosenRequest.java
Log:
Wake up starter after completing a PCR on an insert, because 
SplitFileInserterSegment's may add blocks during the execution of a PCR


Modified: 
branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java  
2009-02-12 14:14:54 UTC (rev 25592)
+++ branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java  
2009-02-12 14:17:42 UTC (rev 25593)
@@ -1140,5 +1140,9 @@
                Logger.error(this, "Not storing ClientRequestScheduler in 
database", new Exception("error"));
                return false;
        }
+
+       public void wakeStarter() {
+               starter.wakeUp();
+       }
        
 }

Modified: 
branches/db4o/freenet/src/freenet/client/async/PersistentChosenRequest.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/PersistentChosenRequest.java 
2009-02-12 14:14:54 UTC (rev 25592)
+++ branches/db4o/freenet/src/freenet/client/async/PersistentChosenRequest.java 
2009-02-12 14:17:42 UTC (rev 25593)
@@ -213,6 +213,15 @@
                        }
                }
                scheduler.removeRunningRequest(request);
+               if(request instanceof SendableInsert) {
+                       // More blocks may have been added, because splitfile 
inserts
+                       // do not separate retries into separate 
SendableInsert's.
+                       if(!container.ext().isActive(request))
+                               container.activate(request, 1);
+                       if(!request.isEmpty(container)) {
+                               request.getScheduler(context).wakeStarter();
+                       }
+               }
                if(!alreadyActive)
                        container.deactivate(request, 1);
        }

_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to