Author: toad
Date: 2008-06-13 12:28:32 +0000 (Fri, 13 Jun 2008)
New Revision: 20294

Modified:
   branches/db4o/freenet/src/freenet/client/async/ClientContext.java
   branches/db4o/freenet/src/freenet/node/NodeARKInserter.java
Log:
Start ARK inserter on the database thread.

Modified: branches/db4o/freenet/src/freenet/client/async/ClientContext.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientContext.java   
2008-06-13 12:25:11 UTC (rev 20293)
+++ branches/db4o/freenet/src/freenet/client/async/ClientContext.java   
2008-06-13 12:28:32 UTC (rev 20294)
@@ -3,9 +3,13 @@
  * http://www.gnu.org/ for further details of the GPL. */
 package freenet.client.async;

+import com.db4o.ObjectContainer;
+
 import freenet.client.FECQueue;
+import freenet.client.InsertException;
 import freenet.node.NodeClientCore;
 import freenet.support.Executor;
+import freenet.support.io.NativeThread;

 /**
  * Object passed in to client-layer operations, containing references to 
essential but transient objects
@@ -35,5 +39,19 @@
                this.nodeDBHandle = core.node.nodeDBHandle;
                this.backgroundBlockEncoder = core.backgroundBlockEncoder;
        }
+
+       public void start(final ClientPutter inserter, final boolean param) {
+               jobRunner.queue(new DBJob() {
+
+                       public void run(ObjectContainer container, 
ClientContext context) {
+                               try {
+                                       inserter.start(param, param, container, 
context);
+                               } catch (InsertException e) {
+                                       inserter.client.onFailure(e, inserter);
+                               }
+                       }
+                       
+               }, NativeThread.NORM_PRIORITY, false);
+       }

 }

Modified: branches/db4o/freenet/src/freenet/node/NodeARKInserter.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/NodeARKInserter.java 2008-06-13 
12:25:11 UTC (rev 20293)
+++ branches/db4o/freenet/src/freenet/node/NodeARKInserter.java 2008-06-13 
12:28:32 UTC (rev 20294)
@@ -161,10 +161,8 @@
                                        
node.clientCore.requestStarters.chkPutScheduler, 
node.clientCore.requestStarters.sskPutScheduler, 
                                        
RequestStarter.INTERACTIVE_PRIORITY_CLASS, false, false, this, null, null, 
false);

-               try {
+                       node.clientCore.clientContext.start(inserter, false);

-                       inserter.start(false);
-                       
                        synchronized (this) {
                                if(fs.get("physical.udp") == null)
                                        lastInsertedPeers = null;
@@ -182,9 +180,6 @@
                                        }
                                }
                        }
-               } catch (InsertException e) {
-                       onFailure(e, inserter); 
-               }
        }

        public void onSuccess(FetchResult result, ClientGetter state) {


Reply via email to