*** empty log message ***
[chuck-blob.git] / v2 / examples / event / signal.ck
blobd7f01108f2a5b7dd0204492f304ff1679cdab02e
1 // signal.ck : signaling events
3 // declare an event
4 Event e;
6 // declare function
7 fun int hi( Event e )
9     // wait on event e
10     e => now;
12     // this only happens AFTER e is signaled
13     <<<"success">>>;
16 // spork shred with e
17 spork ~ hi( e );
19 // yield to give the shred a chance to run (alternative: advance time)
20 me.yield();
22 // signal e
23 e.signal();
25 // advance time to let the other shred run
26 // (the parent shred will free the child shred)
27 // (alternative: me.yield())
28 1::samp => now;