Events: Difference between revisions

(Nimrod -> Nim)
Line 475:
discard p[0].read(addr p[1], 1)
echo "received signal from pipe"</lang>
 
 
=={{header|Oforth}}==
 
An event is often implemented with a control channel. A task is waiting for a object on a 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>
 
An emitter is general implementation for handling events : an emitter waits for events emitted and launches listeners on those events.
<lang Oforth>func: anEvent2
{
| e |
Emitter new(null) ->e
e onEvent($myEvent, #[ "Ok, event is signaled !" println ])
System sleep(1000)
e emit($myEvent)
}</lang>
 
=={{header|Oz}}==
1,015

edits