#! perl -slw use strict; use Inline C => Config => BUILD_NOISY => 1; use Inline C => <<'END_C', NAME => 'TerminateThreadTest', CLEAN_AFTER_BUILD => 0; int killThread( SV *t, SV *ec ) { printf( "t:%p ec:%d\n", SvIV( t ), SvIV( ec ) ); return TerminateThread( SvIV( t ), SvIV( ec ) ); } void hariKari( SV *exitCode ) { TerminateThread( GetCurrentThread(), SvIV( exitCode ) ); } END_C use Devel::Peek; use threads; for( 1 .. 100 ) { my $t = async { sleep 5; hariKari( 12345 ); }; sleep 10; }