Just remember that
sub catch_CtrlC {} and
SIG{'INT'} = \&catch_CtrlC; must both be included in each thread that you want to SIGINT out of.
#/usr/bin/perl
use strict;
use warnings;
use threads;
use threads::shared;
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 thrdfun {
sub catch_CtrlC {
$_->kill('TERM');
}
$SIG{'INT'} = \&catch_CtrlC;
print "thrdfun: $count \n";
$count++;
while (1) {
();
}
exit;
}