Hi! I faced with the problem that my process hangs up while it uses _waituntil() of child::process. So I watched boost code and find that boost::process::child::wait_until is not thread-safe
_struct signal_interceptort is used for setting custom reaction on signal with using system ::signal. So _handlerfunc is a new handler and _sigchldhandler is setting for previous handler
The problem is that signal handler - atribut of the process, not thread, so if the next thread call ::signal then _sigchldhandler is setting for _handlerfunc
Which thread will be used for handle signal is undefined. So thread with _sigchldhandler== _handlerfunc can be used! And this cause infinite loop
You can face with the problem in this code, which uses problem part of _waituntil. (On my system signals are handled by main thread). Also attach out of the programm
bug_wait_until.cpp.txtout.txt
So can you update your documentation with this note please?
Hi! I faced with the problem that my process hangs up while it uses _waituntil() of child::process. So I watched boost code and find that boost::process::child::wait_until is not thread-safe
So can you update your documentation with this note please?