[Pkg] The Trunk: Morphic-cmm.319.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Feb 5 06:47:33 UTC 2010


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 ]."
  !



More information about the Packages mailing list