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

Comparing EV/EV.pm (file contents):
Revision 1.121 by root, Sun Jul 19 03:12:28 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.7001'; 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
366 366
367Each 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
368same callback for multiple watchers. The event mask is named after the 368same callback for multiple watchers. The event mask is named after the
369type, 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,
370EV::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
371(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).
372uses EV::TIMEOUT).
373 372
374In 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
375the 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
376its 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.
377 376
456 455
457=item $previous_state = $w->keepalive ($bool) 456=item $previous_state = $w->keepalive ($bool)
458 457
459Normally, C<EV::loop> will return when there are no active watchers 458Normally, C<EV::loop> will return when there are no active watchers
460(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
461convinient because it allows you to start your watchers (and your jobs), 460convenient because it allows you to start your watchers (and your jobs),
462call 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
463finished (or they forgot to register some watchers for their task :). 462finished (or they forgot to register some watchers for their task :).
464 463
465Sometimes, however, this gets in your way, for example when the module 464Sometimes, however, this gets in your way, for example when the module
466that 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
698 697
699=item $w = EV::signal $signal, $callback 698=item $w = EV::signal $signal, $callback
700 699
701=item $w = EV::signal_ns $signal, $callback 700=item $w = EV::signal_ns $signal, $callback
702 701
702=item $w = $loop->signal ($signal, $callback)
703
704=item $w = $loop->signal_ns ($signal, $callback)
705
703Call 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
704number 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.
705 712
706EV 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
707component 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,
708and 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
709add/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