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

Comparing EV/EV.pm (file contents):
Revision 1.118 by root, Tue Jul 14 20:31:21 2009 UTC vs.
Revision 1.126 by root, Tue Mar 16 17:11:48 2010 UTC

79package EV; 79package EV;
80 80
81use common::sense; 81use common::sense;
82 82
83BEGIN { 83BEGIN {
84 our $VERSION = '3.7'; 84 our $VERSION = '4.00';
85 use XSLoader; 85 use XSLoader;
86 XSLoader::load "EV", $VERSION; 86 XSLoader::load "EV", $VERSION;
87} 87}
88 88
89@EV::IO::ISA = 89@EV::IO::ISA =
299timeout. Otherwise a EV::timer with this value will be started. 299timeout. Otherwise a EV::timer with this value will be started.
300 300
301When an error occurs or either the timeout or I/O watcher triggers, then 301When an error occurs or either the timeout or I/O watcher triggers, then
302the callback will be called with the received event set (in general 302the callback will be called with the received event set (in general
303you can expect it to be a combination of C<EV::ERROR>, C<EV::READ>, 303you can expect it to be a combination of C<EV::ERROR>, C<EV::READ>,
304C<EV::WRITE> and C<EV::TIMEOUT>). 304C<EV::WRITE> and C<EV::TIMER>).
305 305
306EV::once doesn't return anything: the watchers stay active till either 306EV::once doesn't return anything: the watchers stay active till either
307of them triggers, then they will be stopped and freed, and the callback 307of them triggers, then they will be stopped and freed, and the callback
308invoked. 308invoked.
309 309
331These advanced functions set the minimum block interval when polling for I/O events and the minimum 331These advanced functions set the minimum block interval when polling for I/O events and the minimum
332wait interval for timer events. See the libev documentation at 332wait interval for timer events. See the libev documentation at
333L<http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#FUNCTIONS_CONTROLLING_THE_EVENT_LOOP> 333L<http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#FUNCTIONS_CONTROLLING_THE_EVENT_LOOP>
334(locally installed as F<EV::libev>) for a more detailed discussion. 334(locally installed as F<EV::libev>) for a more detailed discussion.
335 335
336=item $count = EV::pending_count
337
338=item $count = $loop->pending_count
339
340Returns the number of currently pending watchers.
341
342=item EV::invoke_pending
343
344=item $loop->invoke_pending
345
346Invoke all currently pending watchers.
347
336=back 348=back
337 349
338 350
339=head1 WATCHER OBJECTS 351=head1 WATCHER OBJECTS
340 352
354 366
355Each watcher type has its associated bit in revents, so you can use the 367Each watcher type has its associated bit in revents, so you can use the
356same callback for multiple watchers. The event mask is named after the 368same callback for multiple watchers. The event mask is named after the
357type, i.e. EV::child sets EV::CHILD, EV::prepare sets EV::PREPARE, 369type, i.e. EV::child sets EV::CHILD, EV::prepare sets EV::PREPARE,
358EV::periodic sets EV::PERIODIC and so on, with the exception of I/O events 370EV::periodic sets EV::PERIODIC and so on, with the exception of I/O events
359(which can set both EV::READ and EV::WRITE bits), and EV::timer (which 371(which can set both EV::READ and EV::WRITE bits).
360uses EV::TIMEOUT).
361 372
362In the rare case where one wants to create a watcher but not start it at 373In the rare case where one wants to create a watcher but not start it at
363the same time, each constructor has a variant with a trailing C<_ns> in 374the same time, each constructor has a variant with a trailing C<_ns> in
364its name, e.g. EV::io has a non-starting variant EV::io_ns and so on. 375its name, e.g. EV::io has a non-starting variant EV::io_ns and so on.
365 376
444 455
445=item $previous_state = $w->keepalive ($bool) 456=item $previous_state = $w->keepalive ($bool)
446 457
447Normally, C<EV::loop> will return when there are no active watchers 458Normally, C<EV::loop> will return when there are no active watchers
448(which is a "deadlock" because no progress can be made anymore). This is 459(which is a "deadlock" because no progress can be made anymore). This is
449convinient because it allows you to start your watchers (and your jobs), 460convenient because it allows you to start your watchers (and your jobs),
450call C<EV::loop> once and when it returns you know that all your jobs are 461call C<EV::loop> once and when it returns you know that all your jobs are
451finished (or they forgot to register some watchers for their task :). 462finished (or they forgot to register some watchers for their task :).
452 463
453Sometimes, however, this gets in your way, for example when the module 464Sometimes, however, this gets in your way, for example when the module
454that calls C<EV::loop> (usually the main program) is not the same module 465that calls C<EV::loop> (usually the main program) is not the same module
686 697
687=item $w = EV::signal $signal, $callback 698=item $w = EV::signal $signal, $callback
688 699
689=item $w = EV::signal_ns $signal, $callback 700=item $w = EV::signal_ns $signal, $callback
690 701
702=item $w = $loop->signal ($signal, $callback)
703
704=item $w = $loop->signal_ns ($signal, $callback)
705
691Call the callback when $signal is received (the signal can be specified by 706Call the callback when $signal is received (the signal can be specified by
692number or by name, just as with C<kill> or C<%SIG>). 707number or by name, just as with C<kill> or C<%SIG>).
708
709Only one event loop can grab a given signal - attempting to grab the same
710signal from two EV loops will crash the program immediately or cause data
711corruption.
693 712
694EV will grab the signal for the process (the kernel only allows one 713EV will grab the signal for the process (the kernel only allows one
695component to receive a signal at a time) when you start a signal watcher, 714component to receive a signal at a time) when you start a signal watcher,
696and removes it again when you stop it. Perl does the same when you 715and removes it again when you stop it. Perl does the same when you
697add/remove callbacks to C<%SIG>, so watch out. 716add/remove callbacks to C<%SIG>, so watch out.

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines