The Trunk: Morphic-cmm.319.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Morphic-cmm.319.mcz

commits-2
Andreas Raab uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-cmm.319.mcz

==================== Summary ====================

Name: Morphic-cmm.319
Author: cmm
Time: 4 February 2010, 10:16:15.072 pm
UUID: e553d1a8-7726-4b46-977f-f2f8762a45b1
Ancestors: Morphic-kb.318

Fix for potential World lockup due to the
UI process waiting for the #next of an empty deferredUIMessages.  For discussion:

http://lists.squeakfoundation.org/pipermail/squeak-dev/2009-March/135119.html

=============== Diff against Morphic-kb.318 ===============

Item was changed:
  ----- Method: WorldState>>runStepMethodsIn: (in category 'stepping') -----
  runStepMethodsIn: aWorld
  "Perform periodic activity inbetween event cycles"
+ | queue msg |
- | queue numItems i limit stamp |
-
  queue := self class deferredUIMessages.
+        [(msg := queue nextOrNil) == nil] whileFalse: [
+                msg value.
+        ].
- numItems := queue size.
- i := 0.
- limit := self class deferredExecutionTimeLimit.
- stamp := Time millisecondClockValue.
-
- "Dispatch deferred messages while maintaing rudimentary UI responsiveness."
- [i < numItems and: [(Time millisecondsSince: stamp) < limit]]
- whileTrue: [queue next value. i := i + 1].
-
  self runLocalStepMethodsIn: aWorld.
-
- "we are using a normal #step for these now"
- "aWorld allLowerWorldsDo: [ :each | each runLocalStepMethods ]."
  !