
I generally handle this by having another thread keep "references" to all the condvars and one part of that thread's reconfigure()/terminate() job is to signal all the condvars. Those threads that were waiting on the condvars then notice that a reconfigure_/terminate_ bool is set and proceed accordingly... Zeljko Vrba wrote:
On Sat, Jan 10, 2009 at 11:45:03AM +0100, Federico Golfrè Andreasi wrote:
Infact process 2 is executed from process 1 using an MPI routine called MPI_Comm_spawn.
Unless MPI_Comm_spawn is doing something out of the ordinary, then process 2 is a direct child of process 1. You can verify whether this is the case by executing "ps axl" and comparing PID and PPID (parent process) for the two processes. If the signal is not delivered, then the MPI library has probably arranged that it be blocked / ignored.
Try the following: right after calling MPI_Init in the parent, use sigprocmask() to explicitly unblock SIGCHLD signal and use sigaction() to install the signal handler.
Otherwise, try finding a supported way of doing this, e.g., by asking on a mailing list dedicated to your MPI implementation.
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users