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) {
