On Nov 15, 2007, at 16:30, Chris Bowditch wrote:
Thanks for the diff. Unfortunately I have been unsuccessful in applying it after several attempts. First I tried using Tortoise SVN client, then I downloaded GNUWin32 Patch and that fails to apply all but hunk 7. I also asked a colleague working on Linux to try and apply the patch but it fails for him too (although one more hunk is successful)I guess I could manually make the updates, but I would prefer to work out whats going wrong here to avoid similar problems in the future and to minimize the risk of error.
Updated diff in attach. No idea why the patching would fail on your end... maybe something to do with encoding?
Saved the file now explicitly with ISO-encoding, just to be sure.Both the 'theoretical limit' issue and the 'too many threads' should be resolved.
The cleanup + rehash logic is now roughly:* if the total number of elements in a segment becomes double the amount of buckets
=> trigger a cleanup, but only if none is running * if this cleanup did not have effect => register the segment in cleaner.votesForRehash* if the total number of votes exceeds 8 (= 32 segments / 4), then rehash
Only got it working with a newly created Thread for each cleanup, though the amount that will be alive at the same time is already drastically reduced.
Reusing the Thread instance never seemed to work for me.
Description: Binary data