OK. I'd like to find out why my code doesn't work. I found
$SIG{'INT'} = threads->kill('TERM');changed to
threads->kill('TERM');
still works.
Then I made a little more change to you code as:
#/usr/bin/perl
use strict;
use warnings;
use threads;
use threads::shared;
$SIG{INT} = \&catchCtrlC;
my @thrList;
my $count = 1;
share $count;
my $counter = 3;
while($counter) {
$counter--;
my $thrHandle = threads->create(\&thrdfun);
push @thrList, $thrHandle;
}
foreach(@thrList){
$_->join();
}
sub catch_CtrlC {
foreach(@thrList){
$_->kill('TERM');
}
}
sub thrdfun {
print "thrdfun: $count \n";
$count++;
while(1){
();
}
exit;
}
It doesn't work. Could you tell me why?