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

Comparing EV/EV.pm (file contents):
Revision 1.76 by root, Fri Dec 21 13:30:55 2007 UTC vs.
Revision 1.77 by root, Sat Dec 22 11:44:50 2007 UTC

208If timeout is C<undef> or negative, then there will be no 208If timeout is C<undef> or negative, then there will be no
209timeout. Otherwise a EV::timer with this value will be started. 209timeout. Otherwise a EV::timer with this value will be started.
210 210
211When an error occurs or either the timeout or I/O watcher triggers, then 211When an error occurs or either the timeout or I/O watcher triggers, then
212the callback will be called with the received event set (in general 212the callback will be called with the received event set (in general
213you can expect it to be a combination of C<EV:ERROR>, C<EV::READ>, 213you can expect it to be a combination of C<EV::ERROR>, C<EV::READ>,
214C<EV::WRITE> and C<EV::TIMEOUT>). 214C<EV::WRITE> and C<EV::TIMEOUT>).
215 215
216EV::once doesn't return anything: the watchers stay active till either 216EV::once doesn't return anything: the watchers stay active till either
217of them triggers, then they will be stopped and freed, and the callback 217of them triggers, then they will be stopped and freed, and the callback
218invoked. 218invoked.
239event. For instance, if you want to wait for STDIN to become readable, you 239event. For instance, if you want to wait for STDIN to become readable, you
240would create an EV::io watcher for that: 240would create an EV::io watcher for that:
241 241
242 my $watcher = EV::io *STDIN, EV::READ, sub { 242 my $watcher = EV::io *STDIN, EV::READ, sub {
243 my ($watcher, $revents) = @_; 243 my ($watcher, $revents) = @_;
244 warn "yeah, STDIN should not be readable without blocking!\n" 244 warn "yeah, STDIN should now be readable without blocking!\n"
245 }; 245 };
246 246
247All watchers can be active (waiting for events) or inactive (paused). Only 247All watchers can be active (waiting for events) or inactive (paused). Only
248active watchers will have their callbacks invoked. All callbacks will be 248active watchers will have their callbacks invoked. All callbacks will be
249called with at least two arguments: the watcher and a bitmask of received 249called with at least two arguments: the watcher and a bitmask of received
345(which is a "deadlock" because no progress can be made anymore). This is 345(which is a "deadlock" because no progress can be made anymore). This is
346convinient because it allows you to start your watchers (and your jobs), 346convinient because it allows you to start your watchers (and your jobs),
347call C<EV::loop> once and when it returns you know that all your jobs are 347call C<EV::loop> once and when it returns you know that all your jobs are
348finished (or they forgot to register some watchers for their task :). 348finished (or they forgot to register some watchers for their task :).
349 349
350Sometimes, however, this gets in your way, for example when you the module 350Sometimes, however, this gets in your way, for example when the module
351that calls C<EV::loop> (usually the main program) is not the same module 351that calls C<EV::loop> (usually the main program) is not the same module
352as a long-living watcher (for example a DNS client module written by 352as a long-living watcher (for example a DNS client module written by
353somebody else even). Then you might want any outstanding requests to be 353somebody else even). Then you might want any outstanding requests to be
354handled, but you would not want to keep C<EV::loop> from returning just 354handled, but you would not want to keep C<EV::loop> from returning just
355because you happen to have this long-running UDP port watcher. 355because you happen to have this long-running UDP port watcher.

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines