Author: toad
Date: 2008-01-22 22:37:28 +0000 (Tue, 22 Jan 2008)
New Revision: 17196
Modified:
trunk/freenet/src/freenet/node/RequestHandler.java
Log:
Don't wait for opennet on-thread
Modified: trunk/freenet/src/freenet/node/RequestHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestHandler.java 2008-01-22 22:37:14 UTC
(rev 17195)
+++ trunk/freenet/src/freenet/node/RequestHandler.java 2008-01-22 22:37:28 UTC
(rev 17196)
@@ -194,6 +194,20 @@
}
}
+ private void waitAndFinishCHKTransferOffThread() {
+ node.executor.execute(new Runnable() {
+ public void run() {
+ try {
+ waitAndFinishCHKTransfer();
+ } catch (NotConnectedException e) {
+ //for byte logging, since the block is
the 'terminal' message.
+ applyByteCounts();
+ unregisterRequestHandlerWithNode();
+ }
+ }
+ }, "Finish CHK transfer");
+ }
+
private void waitAndFinishCHKTransfer() throws NotConnectedException {
if (logMINOR) Logger.minor(this, "Waiting for CHK transfer to
finish");
if(bt.getAsyncExitStatus()) {
@@ -267,7 +281,7 @@
reject = DMT.createFNPRejectedOverload(uid, true);
sendTerminal(reject);
} else {
- waitAndFinishCHKTransfer();
+ waitAndFinishCHKTransferOffThread();
}
}
return;
@@ -281,7 +295,7 @@
sendTerminal(reject);
} else {
//Verify fails after
receive() is complete, so we might as well propagate it...
- waitAndFinishCHKTransfer();
+ waitAndFinishCHKTransferOffThread();
}
return;
}
@@ -297,7 +311,7 @@
reject = DMT.createFNPRejectedOverload(uid, true);
sendTerminal(reject);
} else {
- waitAndFinishCHKTransfer();
+ waitAndFinishCHKTransferOffThread();
}
return;
}