sub _waitpid_blocking { my $self = shift; # pseudo-blocking if( my $sleep_period = $self->{waitpid_blocking_sleep} ) { while() { my $pid = $self->_waitpid_non_blocking; return $pid if $pid; # sleep $sleep_period; select( '','','', $sleep_period ); } } return waitpid -1, 0; }