in reply to Re^5: fork - alarm - output
in thread fork - alarm - output
That (conservatively), probably covers 85% of the uses of such code.
I don't buy that statistic. Either way, it sounds like you're saying 1 failure in 5 attempts is ok!
Are you telling me that you don't see a relatively simple modification to cater for the rest?
Are you saying we're suppose to assume everyone knows that modification is needed and that it was there all along, whatever it might be?
Anyway, I don't call the following a simple modification.
my $pid = open IN, '-|', qq[ perl -E"say scalar localtime, sleep 1 for 1.. $ARGV[0]" ] or die $!; my $buf = ''; if (!do { local $SIG{ ALRM } = sub { kill -9, $pid; }; alarm 5; $buf .= $_ while <IN>; waitpid($pid, 0); alarm 0; die("Can't waitpid: $!\n") if $? == -1; die("Child killed by signal ".($? & 0x7F)."\n") if $? & 0x7F; die("Child returned error ".($? >> 8)."\n") if $? >> 8; 1 }) { waitpid($pid, 0); die("Timeout\n"); }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^7: fork - alarm - output
by BrowserUk (Patriarch) on Jun 08, 2010 at 22:22 UTC | |
by ikegami (Patriarch) on Jun 08, 2010 at 22:55 UTC | |
by BrowserUk (Patriarch) on Jun 08, 2010 at 23:02 UTC | |
by ikegami (Patriarch) on Jun 08, 2010 at 23:06 UTC | |
by BrowserUk (Patriarch) on Jun 08, 2010 at 23:17 UTC | |
|