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

Comparing EV/EV.pm (file contents):
Revision 1.131 by root, Sun Dec 5 11:45:22 2010 UTC vs.
Revision 1.138 by root, Sun May 6 16:30:27 2012 UTC

47 my ($w, $revents) = @_; 47 my ($w, $revents) = @_;
48 warn $w->path, " has changed somehow.\n"; 48 warn $w->path, " has changed somehow.\n";
49 }; 49 };
50 50
51 # MAINLOOP 51 # MAINLOOP
52 EV::loop; # loop until EV::unloop is called or all watchers stop 52 EV::run; # loop until EV::unloop is called or all watchers stop
53 EV::loop EV::LOOP_ONESHOT; # block until at least one event could be handled 53 EV::run EV::RUN_ONCE; # block until at least one event could be handled
54 EV::loop EV::LOOP_NONBLOCK; # try to handle same events, but do not block 54 EV::run EV::RUN_NOWAIT; # try to handle same events, but do not block
55 55
56=head1 BEFORE YOU START USING THIS MODULE 56=head1 BEFORE YOU START USING THIS MODULE
57 57
58If you only need timer, I/O, signal, child and idle watchers and not the 58If you only need timer, I/O, signal, child and idle watchers and not the
59advanced functionality of this module, consider using L<AnyEvent> instead, 59advanced functionality of this module, consider using L<AnyEvent> instead,
119package EV; 119package EV;
120 120
121use common::sense; 121use common::sense;
122 122
123BEGIN { 123BEGIN {
124 our $VERSION = '4.01'; 124 our $VERSION = '4.11';
125 use XSLoader; 125 use XSLoader;
126 XSLoader::load "EV", $VERSION; 126 XSLoader::load "EV", $VERSION;
127} 127}
128 128
129@EV::IO::ISA = 129@EV::IO::ISA =
186Must be called after a fork in the child, before entering or continuing 186Must be called after a fork in the child, before entering or continuing
187the event loop. An alternative is to use C<EV::FLAG_FORKCHECK> which calls 187the event loop. An alternative is to use C<EV::FLAG_FORKCHECK> which calls
188this function automatically, at some performance loss (refer to the libev 188this function automatically, at some performance loss (refer to the libev
189documentation). 189documentation).
190 190
191=item $loop->loop_verify 191=item $loop->verify
192 192
193Calls C<ev_verify> to make internal consistency checks (for debugging 193Calls C<ev_verify> to make internal consistency checks (for debugging
194libev) and abort the program if any data structures were found to be 194libev) and abort the program if any data structures were found to be
195corrupted. 195corrupted.
196 196
290=item $backend = $loop->backend 290=item $backend = $loop->backend
291 291
292Returns an integer describing the backend used by libev (EV::BACKEND_SELECT 292Returns an integer describing the backend used by libev (EV::BACKEND_SELECT
293or EV::BACKEND_EPOLL). 293or EV::BACKEND_EPOLL).
294 294
295=item EV::loop [$flags] 295=item $active = EV::run [$flags]
296 296
297=item $loop->loop ([$flags]) 297=item $active = $loop->run ([$flags])
298 298
299Begin checking for events and calling callbacks. It returns when a 299Begin checking for events and calling callbacks. It returns when a
300callback calls EV::unloop. 300callback calls EV::unloop or the flasg are nonzero (in which case the
301return value is true) or when there are no active watchers which reference
302the loop (keepalive is true), in which case the return value will be
303false. The returnv alue can generally be interpreted as "if true, there is
304more work left to do".
301 305
302The $flags argument can be one of the following: 306The $flags argument can be one of the following:
303 307
304 0 as above 308 0 as above
305 EV::LOOP_ONESHOT block at most once (wait, but do not loop) 309 EV::RUN_ONCE block at most once (wait, but do not loop)
306 EV::LOOP_NONBLOCK do not block at all (fetch/handle events but do not wait) 310 EV::RUN_NOWAIT do not block at all (fetch/handle events but do not wait)
307 311
308=item EV::unloop [$how] 312=item EV::break [$how]
309 313
310=item $loop->unloop ([$how]) 314=item $loop->break ([$how])
311 315
312When called with no arguments or an argument of EV::UNLOOP_ONE, makes the 316When called with no arguments or an argument of EV::BREAK_ONE, makes the
313innermost call to EV::loop return. 317innermost call to EV::loop return.
314 318
315When called with an argument of EV::UNLOOP_ALL, all calls to EV::loop will return as 319When called with an argument of EV::BREAK_ALL, all calls to EV::loop will
316fast as possible. 320return as fast as possible.
317 321
318=item $count = EV::loop_count 322When called with an argument of EV::BREAK_CANCEL, any pending break will
323be cancelled.
319 324
325=item $count = EV::iteration
326
320=item $count = $loop->loop_count 327=item $count = $loop->iteration
321 328
322Return the number of times the event loop has polled for new 329Return the number of times the event loop has polled for new
323events. Sometimes useful as a generation counter. 330events. Sometimes useful as a generation counter.
324 331
325=item EV::once $fh_or_undef, $events, $timeout, $cb->($revents) 332=item EV::once $fh_or_undef, $events, $timeout, $cb->($revents)
345 352
346EV::once doesn't return anything: the watchers stay active till either 353EV::once doesn't return anything: the watchers stay active till either
347of them triggers, then they will be stopped and freed, and the callback 354of them triggers, then they will be stopped and freed, and the callback
348invoked. 355invoked.
349 356
350=item EV::feed_fd_event ($fd, $revents) 357=item EV::feed_fd_event $fd, $revents
351 358
352=item $loop->feed_fd_event ($fd, $revents) 359=item $loop->feed_fd_event ($fd, $revents)
353 360
354Feed an event on a file descriptor into EV. EV will react to this call as 361Feed an event on a file descriptor into EV. EV will react to this call as
355if the readyness notifications specified by C<$revents> (a combination of 362if the readyness notifications specified by C<$revents> (a combination of
356C<EV::READ> and C<EV::WRITE>) happened on the file descriptor C<$fd>. 363C<EV::READ> and C<EV::WRITE>) happened on the file descriptor C<$fd>.
357 364
358=item EV::feed_signal_event ($signal) 365=item EV::feed_signal_event $signal
359 366
360Feed a signal event into EV. EV will react to this call as if the signal 367Feed a signal event into the default loop. EV will react to this call as
361specified by C<$signal> had occured. 368if the signal specified by C<$signal> had occured.
369
370=item EV::feed_signal $signal
371
372Feed a signal event into EV - unlike C<EV::feed_signal_event>, this works
373regardless of which loop has registered the signal, and is mainly useful
374fro custom signal implementations.
362 375
363=item EV::set_io_collect_interval $time 376=item EV::set_io_collect_interval $time
364 377
365=item $loop->set_io_collect_interval ($time) 378=item $loop->set_io_collect_interval ($time)
366 379
1126 1139
1127=item $w = EV::async $callback 1140=item $w = EV::async $callback
1128 1141
1129=item $w = EV::async_ns $callback 1142=item $w = EV::async_ns $callback
1130 1143
1144=item $w = $loop->async ($callback)
1145
1146=item $w = $loop->async_ns ($callback)
1147
1131=item $w->send 1148=item $w->send
1132 1149
1133=item $bool = $w->async_pending 1150=item $bool = $w->async_pending
1134 1151
1135=back 1152=back
1153
1154=head3 CLEANUP WATCHERS - how to clean up when the event loop goes away
1155
1156Cleanup watchers are not supported on the Perl level, they can only be
1157used via XS currently.
1136 1158
1137 1159
1138=head1 PERL SIGNALS 1160=head1 PERL SIGNALS
1139 1161
1140While Perl signal handling (C<%SIG>) is not affected by EV, the behaviour 1162While Perl signal handling (C<%SIG>) is not affected by EV, the behaviour

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines