ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/EV/EV.pm
(Generate patch)

Comparing EV/EV.pm (file contents):
Revision 1.156 by root, Mon Jun 24 22:33:39 2019 UTC vs.
Revision 1.168 by root, Thu Oct 19 18:05:43 2023 UTC

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
119package EV; 119package EV;
120 120
121use common::sense; 121use common::sense;
122 122
123BEGIN { 123BEGIN {
124 our $VERSION = 4.26; 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
175or locally-installed as F<EV::libev> manpage) for more info. 175or locally-installed as F<EV::libev> manpage) for more info.
176 176
177The loop will automatically be destroyed when it is no longer referenced 177The loop will automatically be destroyed when it is no longer referenced
178by any watcher and the loop object goes out of scope. 178by any watcher and the loop object goes out of scope.
179 179
180If you are not embedding the loop, then Using C<EV::FLAG_FORKCHECK> 180If you are not embedding the loop, then using C<EV::FLAG_FORKCHECK>
181is recommended, as only the default event loop is protected by this 181is recommended, as only the default event loop is protected by this
182module. If you I<are> embedding this loop in the default loop, this is not 182module. If you I<are> embedding this loop in the default loop, this is not
183necessary, as C<EV::embed> automatically does the right thing on fork. 183necessary, as C<EV::embed> automatically does the right thing on fork.
184 184
185=item $loop->loop_fork 185=item $loop->loop_fork
370 370
371=item EV::feed_signal $signal 371=item EV::feed_signal $signal
372 372
373Feed a signal event into EV - unlike C<EV::feed_signal_event>, this works 373Feed a signal event into EV - unlike C<EV::feed_signal_event>, this works
374regardless of which loop has registered the signal, and is mainly useful 374regardless of which loop has registered the signal, and is mainly useful
375fro custom signal implementations. 375for custom signal implementations.
376 376
377=item EV::set_io_collect_interval $time 377=item EV::set_io_collect_interval $time
378 378
379=item $loop->set_io_collect_interval ($time) 379=item $loop->set_io_collect_interval ($time)
380 380
646 646
647=item $after = $w->remaining 647=item $after = $w->remaining
648 648
649Calculates and returns the remaining time till the timer will fire. 649Calculates and returns the remaining time till the timer will fire.
650 650
651=item $repeat = $w->repeat
652
653=item $old_repeat = $w->repeat ($new_repeat)
654
655Returns the current value of the repeat attribute and optionally sets a
656new one. Setting the new one will not restart the watcher - if the watcher
657is active, the new repeat value is used whenever it expires next.
658
651=back 659=back
652 660
653 661
654=head3 PERIODIC WATCHERS - to cron or not to cron? 662=head3 PERIODIC WATCHERS - to cron or not to cron?
655 663
748 756
749=item $time = $w->at 757=item $time = $w->at
750 758
751Return the time that the watcher is expected to trigger next. 759Return the time that the watcher is expected to trigger next.
752 760
761=item $offset = $w->offset
762
763=item $old_offset = $w->offset ($new_offset)
764
765Returns the current value of the offset attribute and optionally sets a
766new one. Setting the new one will not restart the watcher - if the watcher
767is active, the new offset value is used whenever it expires next.
768
769=item $interval = $w->interval
770
771=item $old_interval = $w->interval ($new_interval)
772
773See above, for the interval attribute.
774
775=item $reschedule_cb = $w->reschedule_cb
776
777=item $old_reschedule_cb = $w->reschedule_cb ($new_reschedule_cb)
778
779See above, for the reschedule callback.
780
753=back 781=back
754 782
755 783
756=head3 SIGNAL WATCHERS - signal me when a signal gets signalled! 784=head3 SIGNAL WATCHERS - signal me when a signal gets signalled!
757 785
844 872
845=item $pid = $w->rpid 873=item $pid = $w->rpid
846 874
847Return the pid of the awaited child (useful when you have installed a 875Return the pid of the awaited child (useful when you have installed a
848watcher for all pids). 876watcher for all pids).
877
878=item EV::Child::reinit [EXPERIMENTAL]
879
880Internally, libev installs a signal handler for C<SIGCHLD>. Unfortunately,
881a lot of Perl code does soemthing like C<< local $SIG{CHLD} >>, which,
882unfortunately, is broken and will not restore the signal handler.
883
884If this has happened, you can call this function to stop/rrestart the
885internal libev watcher, which will reset the signal handler.
886
887Note that this is an experimental function, whose interface might change.
849 888
850=back 889=back
851 890
852 891
853=head3 STAT WATCHERS - did the file attributes just change? 892=head3 STAT WATCHERS - did the file attributes just change?

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines