[squeak-dev] Process conflict when redisplaying World

Trygve Reenskaug trygver at ifi.uio.no
Wed May 6 15:50:09 UTC 2009


Image is Squeak3.10.gamma.7159.

I have a visualization demo. It runs in a separate process to permit 
mouse and keyboard input while it runs:
    startChaosAnimation
        currentState = #CHAOS ifTrue: [^self].
        currentState := #CHAOS.
        processSemaphore wait.
            BB2ChaosCtx startChaosAnimationOn: data.
            processSemaphore signal.
        ] fork.

BB2ChaosCtx startChaosAnimationOn: data starts a loop that creates and 
removes Morphs interspersed with suitable Delays to get the speed right.

The process can run for several hours before crashing in various ways. 
It sometimes crashes with a primitiveError while redisplaying World. A 
simpler stop was an MNU in
    MorphicEventDispatcher>>dispatchDefault: anEvent with: aMorph
where aMorph =  a PasteUpMorph [world], with fullBounds = nil

My process is clearly in some unfortunate state when the main process 
repaints or handles the mouse. Any ideas how I should make my process safe?

Thanks in advance
--Trygve


-- 

Trygve Reenskaug       mailto: trygver at ifi.uio.no

Morgedalsvn. 5A         http://heim.ifi.uio.no/~trygver

N-0378 Oslo               Tel: (+47) 22 49 57 27

Norway

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20090506/2bf00df6/attachment.htm


More information about the Squeak-dev mailing list