Florian Minjat wrote:
I tried sig's optimisation and it was a lot quicker than the normal one. The problem was the race condition we are dealing with arrived quicker too. A simple but bad solution was to add a delay in #reject:. I don't know if sig has got a better solution yet.
I'll try the Martin Loewis's optimisation to compare the two.
Ok I just tried it, by installing the fix on Mantis and using "MagmaPreferences weakIdentityKeyDictionaryClass: WeakIdentityKeyDictionary." By the way there should be the same for weakValueDictionaryClass in order to really optimize something. I don't know where it's used in magma code, so I can't do that...
So yes after that I launched my update process, and got an error 'could not find an empty slot.' after 20s in WeakKeyDictionary>>noCheckAdd:.
Florian