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

Comparing EV/EV.pm (file contents):
Revision 1.23 by root, Fri Nov 2 20:21:33 2007 UTC vs.
Revision 1.27 by root, Sat Nov 3 09:19:58 2007 UTC

40 }; 40 };
41 41
42 # CHILD/PID STATUS CHANGES 42 # CHILD/PID STATUS CHANGES
43 43
44 my $w = EV::child 666, sub { 44 my $w = EV::child 666, sub {
45 my ($w, $revents, $status) = @_; 45 my ($w, $revents) = @_;
46 # my $pid = $w->rpid;
47 my $status = $w->rstatus;
46 }; 48 };
47 49
48 # MAINLOOP 50 # MAINLOOP
49 EV::loop; # loop until EV::loop_done is called 51 EV::loop; # loop until EV::loop_done is called
50 EV::loop EV::LOOP_ONESHOT; # block until at least one event could be handled 52 EV::loop EV::LOOP_ONESHOT; # block until at least one event could be handled
60package EV; 62package EV;
61 63
62use strict; 64use strict;
63 65
64BEGIN { 66BEGIN {
65 our $VERSION = '0.1'; 67 our $VERSION = '0.5';
66 use XSLoader; 68 use XSLoader;
67 XSLoader::load "EV", $VERSION; 69 XSLoader::load "EV", $VERSION;
68} 70}
69 71
70@EV::Io::ISA = 72@EV::Io::ISA =
197 199
198=item $old_priority = $w->priority ($new_priority) 200=item $old_priority = $w->priority ($new_priority)
199 201
200Queries the priority on the watcher and optionally changes it. Pending 202Queries the priority on the watcher and optionally changes it. Pending
201watchers with higher priority will be invoked first. The valid range of 203watchers with higher priority will be invoked first. The valid range of
202priorities lies between EV::MAXPRI (default 3) and EV::MINPRI (default 204priorities lies between EV::MAXPRI (default 2) and EV::MINPRI (default
203-3). If the priority is outside this range it will automatically be 205-2). If the priority is outside this range it will automatically be
204normalised to the nearest valid priority. 206normalised to the nearest valid priority.
205 207
206The default priority of any newly-created weatcher is 0. 208The default priority of any newly-created weatcher is 0.
207 209
208=item $w->trigger ($revents) 210=item $w->trigger ($revents)
356Call the callback when a status change for pid C<$pid> (or any pid 358Call the callback when a status change for pid C<$pid> (or any pid
357if C<$pid> is 0) has been received. More precisely: when the process 359if C<$pid> is 0) has been received. More precisely: when the process
358receives a SIGCHLD, EV will fetch the outstanding exit/wait status for all 360receives a SIGCHLD, EV will fetch the outstanding exit/wait status for all
359changed/zombie children and call the callback. 361changed/zombie children and call the callback.
360 362
361Unlike all other callbacks, this callback will be called with an 363You can access both status and pid by using the C<rstatus> and C<rpid>
362additional third argument which is the exit status. See the C<waitpid> 364methods on the watcher object.
363function for details.
364 365
365You can have as many pid watchers per pid as you want. 366You can have as many pid watchers per pid as you want.
366 367
367The C<child_ns> variant doesn't start (activate) the newly created watcher. 368The C<child_ns> variant doesn't start (activate) the newly created watcher.
368 369
374=item $current_pid = $w->pid 375=item $current_pid = $w->pid
375 376
376=item $old_pid = $w->pid ($new_pid) 377=item $old_pid = $w->pid ($new_pid)
377 378
378Returns the previously set process id and optionally set a new one. 379Returns the previously set process id and optionally set a new one.
380
381=item $exit_status = $w->rstatus
382
383Return the exit/wait status (as returned by waitpid, see the waitpid entry
384in perlfunc).
385
386=item $pid = $w->rpid
387
388Return the pid of the awaited child (useful when you have installed a
389watcher for all pids).
379 390
380 391
381=item $w = EV::idle $callback 392=item $w = EV::idle $callback
382 393
383=item $w = EV::idle_ns $callback 394=item $w = EV::idle_ns $callback
464 475
465our $DIED = sub { 476our $DIED = sub {
466 warn "EV: error in callback (ignoring): $@"; 477 warn "EV: error in callback (ignoring): $@";
467}; 478};
468 479
469init; 480init
481 or die 'EV: cannot initialise libev backend. bad $ENV{LIBEV_METHODS}?';
470 482
471push @AnyEvent::REGISTRY, [EV => "EV::AnyEvent"]; 483push @AnyEvent::REGISTRY, [EV => "EV::AnyEvent"];
472 484
4731; 4851;
474 486

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines