in reply to kill thread or fork processes
With threads, just run each process in it's own thread and then use exit to terminate. Whichever finishes first will terminate the other thread automatically.
#! perl slw #use 5.008008; For "no warnings 'threads'" ## Doesn't work? use strict; use threads; no warnings 'threads'; async { no warnings 'threads'; sleep rand(10); ## One longe running process print 'Thread 2 finished first'; exit; }; sleep rand(10); ## another long running process print 'thread 1 finished first'; exit;
The code will issue a warning A thread exited while 2 threads were running., but killing a thread this way is no worse that killing a process. From 5.8.8, no warnings 'threads'; is documented ... but not for this particular message it seems.
|
|---|