repo.or.cz
/
chuck-blob.git
/
blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
blame
|
history
|
raw
|
HEAD
*** empty log message ***
[chuck-blob.git]
/
v2
/
examples
/
event
/
event_extend.ck
blob
99538adf0236a5f4cb398f9298369929626678f2
1
// creating custom event objects
2
3
// new event class
4
class TheEvent extends Event
5
{
6
int value;
7
}
8
9
// the event
10
TheEvent e;
11
12
// handler
13
fun int hi( TheEvent e )
14
{
15
while( true )
16
{
17
// wait on event
18
e => now;
19
// get the data
20
<<<e.value>>>;
21
}
22
}
23
24
// spork
25
spork ~ hi( e );
26
spork ~ hi( e );
27
spork ~ hi( e );
28
spork ~ hi( e );
29
30
// infinite time loop
31
while( true )
32
{
33
// advance time
34
1::second => now;
35
36
// set data
37
Std.rand2( 0, 5 ) => e.value;
38
39
// signal one waiting shred
40
e.signal();
41
}