in reply to Re: Threads question
in thread Threads question

the join() method, which is the threads equivalent of wait. There is no equivalent of waitpid. (More's the pity.)

That's backwards. join waits for a specific thread to end, just like waitpid($pid) waits for a specific process to end, and waitpid($pid, WNOHANG) is available as is_joinable. What's missing is the ability to wait for any thread to end (the equivalent of wait and waitpid(-1)).

wait could be emulated as follows:

use Time::HiRes qw( sleep ); sub wait_threads { for (;;) { my @joinable = threads->list(threads::joinable); if (@joinable) { return shift(@joinable)->join(); } sleep(0.010); } }

Replies are listed 'Best First'.
Re^3: Threads question
by BrowserUk (Patriarch) on Jun 29, 2007 at 15:10 UTC