I'm using Thread::Pool::Simple
for multi-threading.
I have a couple of questions which are quite general to multi-threading, I guess:
Each of my threads might die if something unexpected hapens. This is totally accepted by me, since it means some of my assertion are wrong and I need to redesign the code. Currently, when any thread dies the main program (calling thread) also dies, yielding something like:
Perl exited with active threads:
0 running and unjoined
0 finished and unjoined
4 running and detached
- Are these "running and detached" zombies? Are they "dangerous" in any way? Is there a way to kill all of them if any of the threads dies? What is the common solution for such scenarios?
- Generally, my jobs are independent. However, I pass each of them as an argument a unique hash which is taken form one big hash oh hashes. the thread might change this personal hash (but it can't get to the large hash - it doesn't even know about it). Hence, I guess I don't need any locks etc. Am I missing anything?