Hey toad,
Could you please explain the following: - SkelTreeMap: What are you trying to do with it? None of the changes make any functional difference AFAICS. There's no point "encapsulating" SkelValue stuff into separate methods; that class is used only within SkelTreeMap. - SkelBTreeMap: In update(), what did you do to the main loop? - Notifier: what's it for? - ObjectProcessor: What's the new stuff (capacity, etc) you've added for? How is performance now? If it's still a problem, then it'll probably be better to make the async design changes I mentioned, rather than repeatedly add lots of hacks that bloat the code. (For example, data structures classes shouldn't need to have arbitrary queue limits hard-coded into them.) Some minor changes that I will be making anyways: 1. adding a Objects.idString() instead of using System.identityHashcode in 3 separate classes to do the same thing. Where have you used Object.toString() implicitly? I only know of "+this+", and I'll be replacing those snippets with "+Objects.idString(this)+". 2. re-implementing SkelBTreeMap.keySetAutoDeflate() to NOT DUPLICATE CODE. Instead, BTreeMap.entrySet() will use a separate BTreeIterator class with parameters/hooks(onDscInto,onAscFrom)/etc which SkelBTreeMap can use 3. finding a better alternative to TaskAbortExceptionConverter and ExceptionConverter which iirc were temporary hacks anyways. Ximin
