… | |
… | |
2414 | |
2414 | |
2415 | die $$res unless "ARRAY" eq ref $res; |
2415 | die $$res unless "ARRAY" eq ref $res; |
2416 | |
2416 | |
2417 | return wantarray ? @$res : $res->[-1]; |
2417 | return wantarray ? @$res : $res->[-1]; |
2418 | } else { |
2418 | } else { |
|
|
2419 | local $SIG{__WARN__}; |
2419 | eval { |
2420 | eval { |
2420 | local $SIG{__DIE__}; |
2421 | local $SIG{__DIE__}; |
2421 | local $SIG{__WARN__}; |
|
|
2422 | close $fh1; |
2422 | close $fh1; |
2423 | |
2423 | |
2424 | my @res = eval { $cb->(@args) }; |
2424 | my @res = eval { $cb->(@args) }; |
2425 | syswrite $fh2, Coro::Storable::freeze +($@ ? \"$@" : \@res); |
2425 | syswrite $fh2, Coro::Storable::freeze +($@ ? \"$@" : \@res); |
2426 | }; |
2426 | }; |
2427 | |
2427 | |
|
|
2428 | warn $@ if $@; |
2428 | _exit 0; |
2429 | _exit 0; |
2429 | } |
2430 | } |
2430 | } |
2431 | } |
2431 | |
2432 | |
2432 | |
2433 | |