Changes to Trunk (
http://source.squeak.org/trunk.html) in the last 24 hours:
http://lists.squeakfoundation.org/pipermail/packages/2011-December/005154.htmlName: Collections-dtl.469
Ancestors: Collections-cmm.468
Fix weak finalization thrashing, root cause of user interrupt issues.
Perform the check for VM support of new finalization once at image startUp time. This prevents the weak finalization process from creating new weak references that result in thrashing between VM and image as the VM signals the the image to clean up weak references, and the finalization process produces additional weak to be removed.
With this change the finalization process is much less active, and user interrupt handling works as intended such that any of the following can interrupted in the expected way:
"[true] whileTrue"
"[[true] whileTrue] forkAt: Processor userSchedulingPriority + 1"
"Smalltalk createStackOverflow"
"[Smalltalk createStackOverflow] forkAt: Processor userSchedulingPriority + 1"
=============================================