Jump to content

Events: Difference between revisions

m
m (→‎{{header|LFE}}: Tweaked for LFE)
Line 559:
An event is often implemented with a control channel. A task is waiting for an object on the channel. When the event occurs, another task sends an object on this channel.
 
<lang Oforth>func: anEvent
{
| ch |
Channel new ->ch
#[ ch receive "Ok, event is signaled !" println ] &
System sleep(1000)
ch send($myEvent) ;</lang>
}</lang>
 
An emitter is a general implementation for handling events : an emitter waits for events emitted and launches listeners that are waiting for those events.
<lang Oforth>funcimport: anEvent2emitter
 
{
: anEvent2
| e i |
Emitter new(null) ->e
e onEvent($myEvent, #[ "Ok, eventEvent is signaled !" println ])
10 loop: i [ System sleep(1000) e emit($myEvent) ]
1000 System sleep
e close
$myEvent e emit
}</lang>
]
e close ;</lang>
 
=={{header|Oz}}==
1,015

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.