Thanks denis.

So our discussions were good :)



Le 13/8/16 à 10:42, Denis Kudriashov a écrit :
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


Reply via email to