[squeak-dev] Re: The Trunk: Morphic-ar.320.mcz
andreas.raab at gmx.de
Fri Feb 5 19:39:48 UTC 2010
Chris Muller wrote:
> Sorry I lost that. Is the purpose of the execution timeout to allow
> other Morphs a chance to step?
The purpose is to avoid killing the UI if you happen to have a
high-priority runaway process, along the lines of:
[[true] whileTrue:[World addDeferredUIMessage:[World flash]] forkAt:
This will eventually exhaust the queue but you'll get a chance to open a
process browser and hopefully be able to kill the runaway process before
it's too late.
(stepping is not affected since stepping doesn't use the deferred ui
queue and is interruptable via cmd-period)
> On Fri, Feb 5, 2010 at 12:48 AM, <commits at source.squeak.org> wrote:
>> Andreas Raab uploaded a new version of Morphic to project The Trunk:
>> ==================== Summary ====================
>> Name: Morphic-ar.320
>> Author: ar
>> Time: 4 February 2010, 10:47:38.194 pm
>> UUID: cdabac0e-275b-6042-85aa-2198a837dc8a
>> Ancestors: Morphic-cmm.319
>> Restore execution timeout for deferred ui message processing which was lost in previous change.
>> =============== Diff against Morphic-cmm.319 ===============
>> Item was changed:
>> ----- Method: WorldState>>runStepMethodsIn: (in category 'stepping') -----
>> runStepMethodsIn: aWorld
>> "Perform periodic activity inbetween event cycles"
>> + | queue msg limit stamp |
>> + "Limit processing of deferredUIMessages to a max. amount of time"
>> + limit := self class deferredExecutionTimeLimit.
>> + stamp := Time millisecondClockValue.
>> - | queue msg |
>> queue := self class deferredUIMessages.
>> + [(Time millisecondsSince: stamp) >= limit
>> + or:[(msg := queue nextOrNil) == nil]]
>> + whileFalse: [msg value].
>> - [(msg := queue nextOrNil) == nil] whileFalse: [
>> - msg value.
>> - ].
>> self runLocalStepMethodsIn: aWorld.
More information about the Squeak-dev