nil in SuspendedDelays???

Cees De Groot cdegroot at gmail.com
Wed Feb 1 14:06:33 UTC 2006


Well, I have "proof" now:
http://www.cdegroot.com/blog/wp-content/uploads/screenshot.png shows a
screenshot with two debuggers that seem to be inside the same critical
section...

The VM's dump stack results in:

SortedCollection>>add:
[] in Delay>>schedule {[beingWaitedOn := true.  resumptionTime := Time
millisecondClockValue + dela...]}
[] in Semaphore>>critical: {[[self wait]   ifCurtailed: [self signal].
 recover := true.  result := mutu...]}
BlockContext>>ifCurtailed:
Semaphore>>critical:
Delay>>schedule
Delay>>wait
WorldState>>interCyclePause:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>spawnNewProcess {[[World doOneCycle.  Processor
yield.  false] whileFalse.  nil]}
[] in BlockContext>>newProcess {[self value.  Processor terminateActive]}

It *seems* that this only happens in wxSqueak. I have SysInternals'
process explorer running, and the Squeak VM is running a bunch of
threads but I'm not sure what these threads do. But apart from the
guess that something like this could happen when multiple native
threads start executing Squeak code, I'm at a loss what other cause
could be behind this...

HEEELP!!! ;-)



More information about the Squeak-dev mailing list