[Pharo-project] [COTDC] 18 - SMxMorphicAlarm

Henrik Johansen henrik.s.johansen at veloxit.no
Fri Feb 25 12:08:47 CET 2011


On Feb 24, 2011, at 8:49 46PM, laurent laffont wrote:

> Finally a funny class ;)
> 
> I rephrase a little:
> 
> I represent a message sent to be scheduled by the SMxWorldState. I'm the exact duplicate of MorphicAlarm in the Simple Morphic world (see MorphicAlarm comment).
> 
> 
> And in MorphicAlarm:
> 
> I represent a message to be scheduled by the WorldState.
> 
> For example, you can see me in action with the following example which print 'alarm test' on Transcript one second after evaluating the code:
> 
> Transcript open.
> MorphicUIManager currentWorld
> 	addAlarm: #show: 
> 	withArguments: #('alarm test') 
> 	for: Transcript 
> 	at: (Time millisecondClockValue + 1000).
> 
> 
> 
> I haven't been able to test the previous code in SimpleMorphic, there's a MNU when trying to write in the Workspace.
> 
> 
> Laurent
> 

For those wondering "why not just use normal delays and  threading system?", you might want to add:
"Compared to doing:
[(Delay forMilliseconds: 1000) wait. Transcript show: 'alarm test'] forkAt: Processor activeProcess priority +1.

the alarm system has 2 distinctions:
- Runs with the step refresh rate resolution.
- Alarms only run for the active world. (Unless a non-standard scheduler is in use)
- Alarms with the same scheduled time are guaranteed to be executed in the order they were added"

At least that's what I could reckon.

Cheers,
Henry






More information about the Pharo-project mailing list