use threads; use threads::shared; use strict; use warnings; use Win32; open(STDOUT, ">>cp_std.log") || die "Can't redirect stdout"; open(STDERR, ">&STDOUT") || die "Can't dup stdout"; select(STDERR); $| = 1; select(STDOUT); $| = 1; my $running = 0; share($running); exit; sub main_loop { while($running){ Win32::Sleep(250); } print "Exiting...\n"; } sub ShutdownIO { print "ShutdownIO()...\n"; $running = 0; #Win32::Sleep(2000); return; } sub InitIO { if(!$running){ $running = 1; my $poll_thrd = threads->create("main_loop",""); $poll_thrd->detach; } return(""); }