Author: toad
Date: 2009-02-14 12:23:30 +0000 (Sat, 14 Feb 2009)
New Revision: 25642
Modified:
branches/db4o/freenet/src/freenet/client/async/SplitFileInserter.java
Log:
Start inserts immediately, don't schedule a segment scheduler job.
Fixes priority inversion, and faster too.
Modified: branches/db4o/freenet/src/freenet/client/async/SplitFileInserter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SplitFileInserter.java
2009-02-14 01:41:51 UTC (rev 25641)
+++ branches/db4o/freenet/src/freenet/client/async/SplitFileInserter.java
2009-02-14 12:23:30 UTC (rev 25642)
@@ -286,33 +286,11 @@
public void start(ObjectContainer container, final ClientContext
context) throws InsertException {
for(int i=0;i<segments.length;i++) {
- if(persistent) {
+ if(persistent)
container.activate(segments[i], 1);
- SplitFileInserterSegmentRegisterJob segJob = new
SplitFileInserterSegmentRegisterJob(segments[i], NativeThread.NORM_PRIORITY-1);
- segJob.schedule(container, context,
NativeThread.NORM_PRIORITY-1, persistent);
+ segments[i].start(container, context);
+ if(persistent)
container.deactivate(segments[i], 1);
- } else {
- if(!getCHKOnly)
- segments[i].start(container, context);
- else {
- final SplitFileInserterSegment seg =
segments[i];
- context.mainExecutor.execute(new
PrioRunnable() {
-
- public int getPriority() {
- return
NativeThread.NORM_PRIORITY;
- }
-
- public void run() {
- try {
- seg.start(null,
context);
- } catch
(InsertException e) {
- fail(e, null,
context);
- }
- }
-
- }, "Schedule segment (get chk only)");
- }
- }
}
if(persistent)
container.activate(parent, 1);
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs