… | |
… | |
9 | |
9 | |
10 | my $w = EV::timer 2, 0, sub { |
10 | my $w = EV::timer 2, 0, sub { |
11 | warn "is called after 2s"; |
11 | warn "is called after 2s"; |
12 | }; |
12 | }; |
13 | |
13 | |
14 | my $w = EV::timer 2, 1, sub { |
14 | my $w = EV::timer 2, 2, sub { |
15 | warn "is called roughly every 2s (repeat = 1)"; |
15 | warn "is called roughly every 2s (repeat = 2)"; |
16 | }; |
16 | }; |
17 | |
17 | |
18 | undef $w; # destroy event watcher again |
18 | undef $w; # destroy event watcher again |
19 | |
19 | |
20 | my $w = EV::periodic 0, 60, 0, sub { |
20 | my $w = EV::periodic 0, 60, 0, sub { |
… | |
… | |
22 | }; |
22 | }; |
23 | |
23 | |
24 | # IO |
24 | # IO |
25 | |
25 | |
26 | my $w = EV::io *STDIN, EV::READ, sub { |
26 | my $w = EV::io *STDIN, EV::READ, sub { |
27 | my ($w, $revents) = @_; # all callbacks get the watcher object and event mask |
27 | my ($w, $revents) = @_; # all callbacks receive the watcher and event mask |
28 | warn "stdin is readable, you entered: ", <STDIN>; |
28 | warn "stdin is readable, you entered: ", <STDIN>; |
29 | }; |
29 | }; |
30 | |
30 | |
31 | # SIGNALS |
31 | # SIGNALS |
32 | |
32 | |
33 | my $w = EV::signal 'QUIT', sub { |
33 | my $w = EV::signal 'QUIT', sub { |
34 | warn "sigquit received\n"; |
34 | warn "sigquit received\n"; |
35 | }; |
35 | }; |
36 | |
36 | |
37 | my $w = EV::signal 3, sub { |
|
|
38 | warn "sigquit received (this is GNU/Linux, right?)\n"; |
|
|
39 | }; |
|
|
40 | |
|
|
41 | # CHILD/PID STATUS CHANGES |
37 | # CHILD/PID STATUS CHANGES |
42 | |
38 | |
43 | my $w = EV::child 666, sub { |
39 | my $w = EV::child 666, sub { |
44 | my ($w, $revents) = @_; |
40 | my ($w, $revents) = @_; |
45 | # my $pid = $w->rpid; |
|
|
46 | my $status = $w->rstatus; |
41 | my $status = $w->rstatus; |
47 | }; |
42 | }; |
48 | |
43 | |
49 | # MAINLOOP |
44 | # MAINLOOP |
50 | EV::loop; # loop until EV::loop_done is called |
45 | EV::loop; # loop until EV::loop_done is called or all watchers stop |
51 | EV::loop EV::LOOP_ONESHOT; # block until at least one event could be handled |
46 | EV::loop EV::LOOP_ONESHOT; # block until at least one event could be handled |
52 | EV::loop EV::LOOP_NONBLOCK; # try to handle same events, but do not block |
47 | EV::loop EV::LOOP_NONBLOCK; # try to handle same events, but do not block |
53 | |
48 | |
54 | DESCRIPTION |
49 | DESCRIPTION |
55 | This module provides an interface to libev |
50 | This module provides an interface to libev |