in reply to Re^2: MultiThreaded Program in perl

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 :)


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
RIP an inspiration; A true Folk's Guy