Is is possible to check if process terminated?
I don't want to call .wait()
, because it's blocking, and I want to manage a timeout, after which I will terminate the process.
Now I have the following code:
child c = launch(exec, args, ctx);
auto timeout = boost::posix_time::seconds(3);
boost::this_thread::sleep(timeout);
c.terminate();
but it does not wait for termination and does not check if process temrinated gracefully.
That's not in boost.process 0.5 (in 0.6 it is) so you'd need to implement it yourself. That can be done like this:
Or just use boost.process 0.6, if you have C++11 available.