1. How can I send a signal from child threads to parent,saying I am done with a piece of work. In my case parent queing 20 groupid's to the Q, and child threads picks up each group and work on it..I want a thread to sends back the groupid back to the parent so that parent know that group processing is done.
Use a second queue. See Re^7: Win32::Process output for an example.
2. Also I want a child thread to quit working on a group if it encounters some error. I just want the thread to report the error, quit that group and picks up another groupid from the Q. Is that something possible in perl threads?
Do exactly that. Report the error--either to the screen, or a file, or back to the main thread via the second queue above, and loop back and read the next workitem from the queue.
3. Anyway to check the remaining elements in a Q?
Read the documentation for Thread::Queue. (Hint: It starts with p and ends with 'ending' (which is a very good place to end :)
In reply to Re^3: MultiThreaded Program in perl
by BrowserUk
in thread Re^2: MultiThreaded Program in perl
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |