… | |
… | |
10 | |
10 | |
11 | my $w = EV::timer 2, 0, sub { |
11 | my $w = EV::timer 2, 0, sub { |
12 | warn "is called after 2s"; |
12 | warn "is called after 2s"; |
13 | }; |
13 | }; |
14 | |
14 | |
15 | my $w = EV::timer 2, 2, sub { |
15 | my $w = EV::timer 0, 3, sub { |
16 | warn "is called roughly every 2s (repeat = 2)"; |
16 | warn "is called as soon as possible, then every 3s"; |
17 | }; |
17 | }; |
18 | |
18 | |
19 | undef $w; # destroy event watcher again |
19 | undef $w; # destroy event watcher again |
20 | |
20 | |
21 | my $w = EV::periodic 0, 60, 0, sub { |
21 | my $w = EV::periodic 0, 60, 0, sub { |
… | |
… | |
35 | warn "sigquit received\n"; |
35 | warn "sigquit received\n"; |
36 | }; |
36 | }; |
37 | |
37 | |
38 | # CHILD/PID STATUS CHANGES |
38 | # CHILD/PID STATUS CHANGES |
39 | |
39 | |
40 | my $w = EV::child 666, 0, sub { |
40 | my $w = EV::child $pid, 0, sub { |
41 | my ($w, $revents) = @_; |
41 | my ($w, $revents) = @_; |
42 | my $status = $w->rstatus; |
42 | my $status = $w->rstatus; |
43 | }; |
43 | }; |
44 | |
44 | |
45 | # STAT CHANGES |
45 | # STAT CHANGES |
… | |
… | |
119 | package EV; |
119 | package EV; |
120 | |
120 | |
121 | use common::sense; |
121 | use common::sense; |
122 | |
122 | |
123 | BEGIN { |
123 | BEGIN { |
124 | our $VERSION = '4.31'; |
124 | our $VERSION = '4.34'; |
125 | use XSLoader; |
125 | use XSLoader; |
126 | local $^W = 0; # avoid spurious warning |
126 | local $^W = 0; # avoid spurious warning |
127 | XSLoader::load "EV", $VERSION; |
127 | XSLoader::load "EV", $VERSION; |
128 | } |
128 | } |
129 | |
129 | |
… | |
… | |
175 | or locally-installed as F<EV::libev> manpage) for more info. |
175 | or locally-installed as F<EV::libev> manpage) for more info. |
176 | |
176 | |
177 | The loop will automatically be destroyed when it is no longer referenced |
177 | The loop will automatically be destroyed when it is no longer referenced |
178 | by any watcher and the loop object goes out of scope. |
178 | by any watcher and the loop object goes out of scope. |
179 | |
179 | |
180 | If you are not embedding the loop, then Using C<EV::FLAG_FORKCHECK> |
180 | If you are not embedding the loop, then using C<EV::FLAG_FORKCHECK> |
181 | is recommended, as only the default event loop is protected by this |
181 | is recommended, as only the default event loop is protected by this |
182 | module. If you I<are> embedding this loop in the default loop, this is not |
182 | module. If you I<are> embedding this loop in the default loop, this is not |
183 | necessary, as C<EV::embed> automatically does the right thing on fork. |
183 | necessary, as C<EV::embed> automatically does the right thing on fork. |
184 | |
184 | |
185 | =item $loop->loop_fork |
185 | =item $loop->loop_fork |
… | |
… | |
872 | |
872 | |
873 | =item $pid = $w->rpid |
873 | =item $pid = $w->rpid |
874 | |
874 | |
875 | Return the pid of the awaited child (useful when you have installed a |
875 | Return the pid of the awaited child (useful when you have installed a |
876 | watcher for all pids). |
876 | watcher for all pids). |
|
|
877 | |
|
|
878 | =item EV::Child::reinit [EXPERIMENTAL] |
|
|
879 | |
|
|
880 | Internally, libev installs a signal handler for C<SIGCHLD>. Unfortunately, |
|
|
881 | a lot of Perl code does soemthing like C<< local $SIG{CHLD} >>, which, |
|
|
882 | unfortunately, is broken and will not restore the signal handler. |
|
|
883 | |
|
|
884 | If this has happened, you can call this function to stop/rrestart the |
|
|
885 | internal libev watcher, which will reset the signal handler. |
|
|
886 | |
|
|
887 | Note that this is an experimental function, whose interface might change. |
877 | |
888 | |
878 | =back |
889 | =back |
879 | |
890 | |
880 | |
891 | |
881 | =head3 STAT WATCHERS - did the file attributes just change? |
892 | =head3 STAT WATCHERS - did the file attributes just change? |