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

Comparing EV/EV.pm (file contents):
Revision 1.24 by root, Fri Nov 2 22:03:00 2007 UTC vs.
Revision 1.28 by root, Sun Nov 4 16:52:52 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 =
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; 480default_loop
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