http://www.perlmonks.org?node_id=911968


in reply to Thread::Pool shutdown dies after abort

Why are you using both abort and shutdown?
I think you are supposed to only use one of them depending on what you want. I do think the error message is confusing though.

From the fine manual.

shutdown $pool->shutdown; The "shutdown" method waits for all jobs to be executed, remove +s all worker threads, handles any results that still need to be strea +med, before it returns. Call the abort method if you do not want to + wait until all jobs have been executed. It is called automatically when the object is destroyed, unless specifically disabled by providing a false value with the "autoshutdown" field when creating the pool with new, or by cal +ling the autoshutdown method. abort The "abort" method waits for all worker threads to finish their current job, removes all worker threads, before it returns. Ca +ll the shutdown method if you want to wait until all jobs have been do +ne. You can restart the job handling process after calling "abort" +by adding workers again.