… | |
… | |
1334 | sub _sig_del { |
1334 | sub _sig_del { |
1335 | undef $SIG_TW |
1335 | undef $SIG_TW |
1336 | unless --$SIG_COUNT; |
1336 | unless --$SIG_COUNT; |
1337 | } |
1337 | } |
1338 | |
1338 | |
1339 | our %SIGNAME2NUM; |
|
|
1340 | our @SIGNUM2NAME; |
|
|
1341 | our $_sig_name_init; $_sig_name_init = sub { |
1339 | our $_sig_name_init; $_sig_name_init = sub { |
1342 | undef $_sig_name_init; |
1340 | undef $_sig_name_init; |
1343 | |
1341 | |
1344 | if (_have_async_interrupt) { |
1342 | if (_have_async_interrupt) { |
1345 | *sig2num = \&Async::Interrupt::sig2num; |
1343 | *sig2num = \&Async::Interrupt::sig2num; |
1346 | *sig2name = \&Async::Interrupt::sig2name; |
1344 | *sig2name = \&Async::Interrupt::sig2name; |
1347 | } else { |
1345 | } else { |
1348 | require Config; |
1346 | require Config; |
1349 | |
1347 | |
|
|
1348 | my %signame2num; |
1350 | @SIGNAME2NUM{ split ' ', $Config::Config{sig_name} } |
1349 | @signame2num{ split ' ', $Config::Config{sig_name} } |
1351 | = split ' ', $Config::Config{sig_num}; |
1350 | = split ' ', $Config::Config{sig_num}; |
1352 | @SIGNUM2NAME[values %SIGNAME2NUM] = keys %SIGNAME2NUM; |
1351 | |
|
|
1352 | my @signum2name; |
|
|
1353 | @signum2name[values %signame2num] = keys %signame2num; |
1353 | |
1354 | |
1354 | *sig2num = sub($) { |
1355 | *sig2num = sub($) { |
1355 | $_[0] > 0 ? shift : $SIGNAME2NUM{+shift} |
1356 | $_[0] > 0 ? shift : $signame2num{+shift} |
1356 | }; |
1357 | }; |
1357 | *sig2name = sub ($) { |
1358 | *sig2name = sub ($) { |
1358 | $_[0] > 0 ? $SIGNUM2NAME[+shift] : shift |
1359 | $_[0] > 0 ? $signum2name[+shift] : shift |
1359 | }; |
1360 | }; |
1360 | } |
1361 | } |
1361 | }; |
1362 | }; |
1362 | |
1363 | |
1363 | sub sig2num ($) { &$_sig_name_init; &sig2num } |
1364 | sub sig2num ($) { &$_sig_name_init; &sig2num } |