in reply to using the thread->kill() feature on linux

Personally, I think mixing signals and threads is a very bad idea, so I don't. But, maybe the following output from running your program on windows will give you some clues to your mistakes:

c:\test>junk73 I'm the parent pid-> 4440 No such signal: SIGSIGUSR1 at C:\test\junk73.pl line 26. No such signal: SIGSIGUSR1 at C:\test\junk73.pl line 26. In the thread threads=SCALAR(0x35a9020) tid->1 1 In the thread threads=SCALAR(0x362daa8) tid->2 2 3 4 5 Unrecognized signal name: USR1 at C:\test\junk73.pl line 14. Perl exited with active threads: 1 running and unjoined 0 finished and unjoined 1 running and detached

He he :)

c:\test>perl -wE"$SIG{SIGSPUTNIK} = 'ignore'" No such signal: SIGSIGSPUTNIK at -e line 1.

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
RIP an inspiration; A true Folk's Guy