Events: Difference between revisions
m
→{{header|Oforth}}
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>
| ch |
Channel new ->ch
#[ ch receive "Ok, event is signaled !" println ] &
System sleep(1000)
ch send($myEvent) ;</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>
: anEvent2
| e i |
Emitter new(null) ->e
e onEvent($myEvent, #[ "
10 loop: i [
1000 System sleep
e close▼
$myEvent e emit
]
▲ e close ;</lang>
=={{header|Oz}}==
|