Events: Difference between revisions

549 bytes added ,  10 years ago
Added zkl
(Added zkl)
Line 691:
vwait X
puts "received event"</lang>
 
=={{header|zkl}}==
zkl provides an Atomics library for things like this. Events are async, waiting for an event doesn't poll.
<lang zkl>var event=Atomic.Bool(); // False
// create thread waiting for event
fcn(event){event.wait(); println(vm," ping!")}.launch(event);
Atomic.sleep(1);
event.set();
println("done")</lang>
{{out}}
<pre>
// snooze
done // setting is fast, receiving maybe not so
VM#4 ping!
// and thread 4 exits
</pre>
I ran this from the REPL so I didn't have to worry about the main thread exiting and nuking the child thread.
 
{{omit from|GUISS}}
Anonymous user