Is this what you want?
use strict; use warnings; use 5.010; use threads; use threads::shared; my $flag = 0; share($flag); say "\$flag in main() is: $flag"; $SIG{'HUP'} = sub { $flag = !$flag; say "signal caught, \$flag in main() changed to: $flag"; }; sub thr_func { for (1 .. 5) { sleep 1; say "\$flag in thread is: $flag"; } } my $thr = threads->create('thr_func')->detach(); sleep 3; #allow time for thread to be created and start running kill('HUP', $$); #send signal to main() sleep 10; --output:-- $flag in main() is: 0 $flag in thread is: 0 signal caught, $flag in main() changed to: 1 $flag in thread is: 0 $flag in thread is: 1 $flag in thread is: 1 $flag in thread is: 1
In reply to Re: Catching signals under Linux
by 7stud
in thread Catching signals under Linux
by weismat
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |