in reply to Re^2: break thread with system(...) call
in thread break thread with system(...) call

Better yet, see Re: Killing children's of children & Re^3: Killing children's of children


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.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."
  • Comment on Re^3: break thread with system(...) call

Replies are listed 'Best First'.
Re^4: break thread with system(...) call
by aaaone (Initiate) on Jul 17, 2008 at 16:52 UTC
    Thanks a lot! I've thought so much and determined to do like this (taskkill.exe) is windows native program (I've recently read about it.. yes, also at perlmonks.org)):
    my $pid = system (1, 'FOR /R C:\ %G IN (*.*) DO type %G'); sleep(2); print `taskkill.exe /PID $pid /T /F`;
    To detect the state of process, I use this:
    #return (kill 0,$pid); - don't know but it doesn't work.. my $throbj; if (Win32::Process::Open($throbj,$pid,0)) { my $ecode; $throbj->GetExitCode ($ecode); if ($ecode==Win32::Process::STILL_ACTIVE) { return 1; } #STILL ACTIVE return 0; }
    I'm a bit sad that I've read too late about Win32::Job and Proc-Background but my resulting solution seems to work well...

    Guys, thanks once again! ) you helped me very very.