We had discussion on reasons why cmd+. is not always working.
I made simple test which shows that VM is not issue. Following code normally stops after 20 seconds:
hanging := [1 seconds wait. 1 recursionTest] newProcess.
hanging priority: Processor activePriority + 10.
interruptor := [ 20 seconds wait.��hanging��suspend] newProcess.
interruptor priority: Processor activePriority + 11.

hanging resume.
interruptor resume.

Recursion method:
Integer>>recursionTest
�� ���� self��recursionTest

Hanging process produces 7 million contexts on my machine:

c := hanging suspendedContext.
count := 1.
[ c notNil ] whileTrue: [ c := c sender. count := count + 1 ].
count ��7395279"

But if you try to debug it by "hanging debug" you will see how it is slow. It's caused by printing stack to file.��
Interesting that logging is performed before opening debugger. So every time we press cmd+. we are waiting logging to see debugger.

We need to change this logic.��

Best regards,
Denis