Thank you for your answer,
but process 2 is not a child of process 1, and so SIGCHLD is not send.

Infact process 2 is executed from process 1 using an MPI routine
called MPI_Comm_spawn.

Do you see other approach I can try?

thank you.



2009/1/9 Zeljko Vrba <zvrba@ifi.uio.no>
On Fri, Jan 09, 2009 at 10:06:00AM +0100, Federico Golfrč Andreasi wrote:
> Hi!
>
> I'm using condition variables of Boost.interprocess 1.36.0 to manage a
> synchronized access to a shared memory segment by two tasks.
> I found a problem when: task 1 is waiting on a condition variable and task 2
> crashes during his execution, so task 1 waits forever on that variable.
>
> How can I kill also task 1?
>
On UNIX, process 1 should get SIGCHLD when process 2 terminates in any way.
The signal should interrupt waiting on the condition variable.  By
installing the appropriate signal handler, you can terminate process 1.
I'm not sure how to do this under Windows.


_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users