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

Comparing AnyEvent/lib/AnyEvent.pm (file contents):
Revision 1.22 by root, Sun Dec 31 11:54:43 2006 UTC vs.
Revision 1.25 by root, Wed Apr 11 00:36:59 2007 UTC

245 245
246package AnyEvent; 246package AnyEvent;
247 247
248no warnings; 248no warnings;
249use strict; 249use strict;
250
250use Carp; 251use Carp;
251 252
252our $VERSION = '2.51'; 253our $VERSION = '2.52';
253our $MODEL; 254our $MODEL;
254 255
255our $AUTOLOAD; 256our $AUTOLOAD;
256our @ISA; 257our @ISA;
257 258
386 or Carp::croak "required option 'pid' is missing"; 387 or Carp::croak "required option 'pid' is missing";
387 388
388 $PID_CB{$pid}{$arg{cb}} = $arg{cb}; 389 $PID_CB{$pid}{$arg{cb}} = $arg{cb};
389 390
390 unless ($WNOHANG) { 391 unless ($WNOHANG) {
391 $CHLD_W = AnyEvent->signal (signal => 'CHLD', cb => \&_child_wait);
392 $WNOHANG = eval { require POSIX; &POSIX::WNOHANG } || 1; 392 $WNOHANG = eval { require POSIX; &POSIX::WNOHANG } || 1;
393 } 393 }
394 394
395 unless ($CHLD_W) {
396 $CHLD_W = AnyEvent->signal (signal => 'CHLD', cb => \&_child_wait);
395 # child could be a zombie already 397 # child could be a zombie already
396 $PID_IDLE ||= AnyEvent->timer (after => 0, cb => \&_child_wait); 398 $PID_IDLE ||= AnyEvent->timer (after => 0, cb => \&_child_wait);
399 }
397 400
398 bless [$pid, $arg{cb}], "AnyEvent::Base::Child" 401 bless [$pid, $arg{cb}], "AnyEvent::Base::Child"
399} 402}
400 403
401sub AnyEvent::Base::Child::DESTROY { 404sub AnyEvent::Base::Child::DESTROY {
437I<rxvt-unicode> distribution. 440I<rxvt-unicode> distribution.
438 441
439I<rxvt-unicode> also cheats a bit by not providing blocking access to 442I<rxvt-unicode> also cheats a bit by not providing blocking access to
440condition variables: code blocking while waiting for a condition will 443condition variables: code blocking while waiting for a condition will
441C<die>. This still works with most modules/usages, and blocking calls must 444C<die>. This still works with most modules/usages, and blocking calls must
442not be in an interactive appliation, so it makes sense. 445not be in an interactive application, so it makes sense.
443 446
444=head1 ENVIRONMENT VARIABLES 447=head1 ENVIRONMENT VARIABLES
445 448
446The following environment variables are used by this module: 449The following environment variables are used by this module:
447 450

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines