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

Comparing EV/EV.pm (file contents):
Revision 1.116 by root, Sat Jun 13 15:11:54 2009 UTC vs.
Revision 1.126 by root, Tue Mar 16 17:11:48 2010 UTC

76 76
77=cut 77=cut
78 78
79package EV; 79package EV;
80 80
81no warnings; 81use common::sense;
82use strict;
83 82
84BEGIN { 83BEGIN {
85 our $VERSION = '3.6'; 84 our $VERSION = '4.00';
86 use XSLoader; 85 use XSLoader;
87 XSLoader::load "EV", $VERSION; 86 XSLoader::load "EV", $VERSION;
88} 87}
89 88
90@EV::IO::ISA = 89@EV::IO::ISA =
300timeout. Otherwise a EV::timer with this value will be started. 299timeout. Otherwise a EV::timer with this value will be started.
301 300
302When 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
303the callback will be called with the received event set (in general 302the callback will be called with the received event set (in general
304you 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>,
305C<EV::WRITE> and C<EV::TIMEOUT>). 304C<EV::WRITE> and C<EV::TIMER>).
306 305
307EV::once doesn't return anything: the watchers stay active till either 306EV::once doesn't return anything: the watchers stay active till either
308of 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
309invoked. 308invoked.
310 309
332These 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
333wait interval for timer events. See the libev documentation at 332wait interval for timer events. See the libev documentation at
334L<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>
335(locally installed as F<EV::libev>) for a more detailed discussion. 334(locally installed as F<EV::libev>) for a more detailed discussion.
336 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
337=back 348=back
338 349
339 350
340=head1 WATCHER OBJECTS 351=head1 WATCHER OBJECTS
341 352
355 366
356Each 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
357same callback for multiple watchers. The event mask is named after the 368same callback for multiple watchers. The event mask is named after the
358type, 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,
359EV::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
360(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).
361uses EV::TIMEOUT).
362 372
363In 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
364the 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
365its 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.
366 376
445 455
446=item $previous_state = $w->keepalive ($bool) 456=item $previous_state = $w->keepalive ($bool)
447 457
448Normally, C<EV::loop> will return when there are no active watchers 458Normally, C<EV::loop> will return when there are no active watchers
449(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
450convinient because it allows you to start your watchers (and your jobs), 460convenient because it allows you to start your watchers (and your jobs),
451call 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
452finished (or they forgot to register some watchers for their task :). 462finished (or they forgot to register some watchers for their task :).
453 463
454Sometimes, however, this gets in your way, for example when the module 464Sometimes, however, this gets in your way, for example when the module
455that 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
687 697
688=item $w = EV::signal $signal, $callback 698=item $w = EV::signal $signal, $callback
689 699
690=item $w = EV::signal_ns $signal, $callback 700=item $w = EV::signal_ns $signal, $callback
691 701
702=item $w = $loop->signal ($signal, $callback)
703
704=item $w = $loop->signal_ns ($signal, $callback)
705
692Call 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
693number 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.
694 712
695EV 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
696component 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,
697and 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
698add/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