diff options
Diffstat (limited to 'lib/IO/Pty/Easy.pm')
-rw-r--r-- | lib/IO/Pty/Easy.pm | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/lib/IO/Pty/Easy.pm b/lib/IO/Pty/Easy.pm index 488b776..89756a0 100644 --- a/lib/IO/Pty/Easy.pm +++ b/lib/IO/Pty/Easy.pm @@ -144,7 +144,8 @@ sub spawn { close $slave; { exec(@_) }; print $writep $! + 0; - croak "Cannot exec(@_): $!"; + carp "Cannot exec(@_): $!"; + exit 1; } close $writep; @@ -156,16 +157,14 @@ sub spawn { my $errno; my $read_bytes = sysread($readp, $errno, 256); unless (defined $read_bytes) { - carp "Cannot sync with child: $!"; kill TERM => $self->{pid}; close $readp; - return; + croak "Cannot sync with child: $!"; } close $readp; if ($read_bytes > 0) { $errno = $errno + 0; - carp "Cannot exec(@_): $errno"; - return; + croak "Cannot exec(@_): $errno"; } my $pid = $self->{pid}; |