Am 18.04.2016 um 19:37 schrieb Klaim - Joël Lamotte:
At the current state, I have all functionality in the library that I want, but it's not polished at all. Also it of course needs more tests and documentation. But I think it sufficient to get the basic idea.
You can check it out here: https://github.com/klemens-morgenstern/boost-process/tree/develop And the little documentation it has is found here: http://klemens-morgenstern.github.io/process/
Additionally here are the development notes: https://github.com/klemens-morgenstern/boost-process/issues/2
At the current state, the tests pass on linux as well as windows (gcc-5 & MSVC-14). Requirements are C++, boost.fusion, boost.asio, boost.iostreams, boost.filesystem and boost.system.
I started reading the documentation but before getting into details, could you clarify if Boost.Asio is required even if you don't use communication with the child processes? We have a few tricky cases related to child process management on Windows, in particular when trying to end a child process "cleanly" when it is console program. I'll have to check if you managed to fix the issues we are seeing, in which case this solution would be better than the hackish one we have.
Well no, boost.asio is not used when you don't pass it to execute. But it is included, which could be changed to forward-declarations. The implementation of the async wait is to just wait for the handle, so that's quite simple. That is basically what you find in test/exit_code.cpp : async_wait.