
On 02/10/2011 01:36 AM, John Bytheway wrote:
I don't pretend to be an expert, but I thought that one could safely get around these sorts of problems with wait by using waitpid instead, rather than having to use signal handlers. Does that solution apply in this case?
No, there are still two problems: it is necessary then for boost.process to have one thread waiting per child process, which is rather wasteful, and furthermore the form of wait that waits for any (rather than a specific) child pid cannot be used at all within the program by other code, as otherwise that other wait call might accidentally get notified even for a boost.process pid. Thus, any code that interoperates with Boost.process must use the same wasteful method of waiting.