That such a low-level operation appears to be failing like this is very disturbing..
Message: 4 Date: Wed, 1 Feb 2006 15:06:33 +0100 From: Cees De Groot cdegroot@gmail.com Subject: Re: nil in SuspendedDelays??? To: The general-purpose Squeak developers list squeak-dev@lists.squeakfoundation.org Message-ID:
330b6fd60602010606t362815b6ga6807d6c5e722ffa@mail.gmail.com
Content-Type: text/plain; charset=ISO-8859-1
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!!! ;-)
squeak-dev@lists.squeakfoundation.org