Author: toad
Date: 2009-01-24 15:12:39 +0000 (Sat, 24 Jan 2009)
New Revision: 25268

Modified:
   branches/db4o/freenet/src/freenet/support/io/SegmentedBucketChainBucket.java
Log:
Remove the kill job on clear() and on free(), NOT on os.close().
Fixes another bucket leak.


Modified: 
branches/db4o/freenet/src/freenet/support/io/SegmentedBucketChainBucket.java
===================================================================
--- 
branches/db4o/freenet/src/freenet/support/io/SegmentedBucketChainBucket.java    
    2009-01-24 15:11:49 UTC (rev 25267)
+++ 
branches/db4o/freenet/src/freenet/support/io/SegmentedBucketChainBucket.java    
    2009-01-24 15:12:39 UTC (rev 25268)
@@ -84,6 +84,10 @@
                                        segment.free();
                                        segment.removeFrom(container);
                                }
+                               synchronized(SegmentedBucketChainBucket.this) {
+                                       if(killMe == null) return;
+                               }
+                               dbJobRunner.removeRestartJob(killMe, 
NativeThread.HIGH_PRIORITY, container);
                        }
                        
                }, NativeThread.HIGH_PRIORITY);
@@ -276,10 +280,6 @@
                                                container.ext().store(segments, 
1);
                                                
container.ext().store(SegmentedBucketChainBucket.this, 1);
                                                container.deactivate(oldSeg, 1);
-                                               
synchronized(SegmentedBucketChainBucket.this) {
-                                                       if(killMe == null) 
return;
-                                               }
-                                               
dbJobRunner.removeRestartJob(killMe, NativeThread.HIGH_PRIORITY, container);
                                        }
                                        
                                }, NativeThread.HIGH_PRIORITY);
@@ -414,6 +414,10 @@
                                        segment.clear(container, context);
                                }
                                
container.delete(SegmentedBucketChainBucket.class);
+                               synchronized(SegmentedBucketChainBucket.this) {
+                                       if(killMe == null) return;
+                               }
+                               dbJobRunner.removeRestartJob(killMe, 
NativeThread.HIGH_PRIORITY, container);
                        }
                        
                }, NativeThread.HIGH_PRIORITY);

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

Reply via email to