[squeak-dev] DebuggerUnwindBug>>testUnwindDebuggerWithStep

Norbert Hartl norbert at hartl.name
Fri Jun 20 12:50:27 UTC 2008


This test case appears at some point to fail. It succeeds in 3.9.
I narrowed the problem to an update of 3.9.1 with update 7071
(Kernel-sd.151) which introduced it. 

The piece of code that triggers it is:

Process>>terminate
...
suspendedContext ifNotNil: [
   "Figure out if we are terminating the process while waiting in   
    Semaphore>>critical: In this case, pop the suspendedContext so that
    we leave the ensure: block inside Semaphore>>critical: without
    signaling the semaphore."
      (inSema == true and:[
         suspendedContext method == (
            Semaphore compiledMethodAt: #critical:) ]) ifTrue:[
               suspendedContext := suspendedContext home.
         ].
...

I don't really understand the rationale behind doing this but it
seems that it conflicts with the test assumption:

DebuggerUnwindBug>>testUnwindDebuggerWithStep
...
   debugger doStep.
   "close debugger"
   top delete.

   "and see if unwind protection worked"
   self assert: sema isSignaled.

As I don't really understand what happens and what should happen I would
be glad to hear some words of advice.

Norbert




More information about the Squeak-dev mailing list