[squeak-dev] Re: Process conflict when redisplaying World
Andreas Raab
andreas.raab at gmx.de
Wed May 6 16:09:00 UTC 2009
Trygve Reenskaug wrote:
> 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?
Use Morph stepping instead of an unsynchronized process.
Cheers,
- Andreas
More information about the Squeak-dev
mailing list
|