
There haven't been much news on Boost.Process lately which doesn't mean though that nothing is happening. I've been working on a Boost.Asio extension which can be used to wait asynchronously for Windows processes - see https://github.com/BorisSchaeling/asio. This was already supported by Boost.Process 0.4 but the implementation was heavily criticized. The code has been moved now to Boost.Asio (or at least I hope it will - I'm in contact with Chris :) and provides a new Windows I/O object called object_handle. The implementation is now based on the Windows function RegisterWaitForSingleObject(). The new I/O object can not only be used to wait for processes. It can also be used to wait for events, mutexes, semaphores etc. As it's not process-related anymore, it makes sense to ship the code with Boost.Asio (where we have already similar Windows I/O objects called random_access_handle and stream_handle - object_handle fits in nicely). Once I'm done with this, a major critical point should have been resolved. I'll go back then to Boost.Process code and help Jeff to finish https://github.com/JeffFlinn/boost-process. I'm not sure how far we are there. But as I don't remember any major obstacles, I'm confident that there are none. :) Boris

On Mon, Aug 1, 2011 at 7:20 PM, Boris Schaeling <boris@highscore.de> wrote:
There haven't been much news on Boost.Process lately which doesn't mean though that nothing is happening. I've been working on a Boost.Asio extension which can be used to wait asynchronously for Windows processes - see https://github.com/**BorisSchaeling/asio<https://github.com/BorisSchaeling/asio>. This was already supported by Boost.Process 0.4 but the implementation was heavily criticized. The code has been moved now to Boost.Asio (or at least I hope it will - I'm in contact with Chris :) and provides a new Windows I/O object called object_handle. The implementation is now based on the Windows function RegisterWaitForSingleObject(). The new I/O object can not only be used to wait for processes. It can also be used to wait for events, mutexes, semaphores etc. As it's not process-related anymore, it makes sense to ship the code with Boost.Asio (where we have already similar Windows I/O objects called random_access_handle and stream_handle - object_handle fits in nicely).
Just curious, are these kinds of features cross platform?
Once I'm done with this, a major critical point should have been resolved. I'll go back then to Boost.Process code and help Jeff to finish https://github.com/JeffFlinn/**boost-process<https://github.com/JeffFlinn/boost-process>. I'm not sure how far we are there. But as I don't remember any major obstacles, I'm confident that there are none. :)
Boris
______________________________**_________________ Unsubscribe & other changes: http://lists.boost.org/** mailman/listinfo.cgi/boost<http://lists.boost.org/mailman/listinfo.cgi/boost>

On Tue, 02 Aug 2011 15:53:27 +0200, Daniel Larimer <dlarimer@gmail.com> wrote:
On Mon, Aug 1, 2011 at 7:20 PM, Boris Schaeling <boris@highscore.de> wrote:
There haven't been much news on Boost.Process lately which doesn't mean though that nothing is happening. I've been working on a Boost.Asio extension which can be used to wait asynchronously for Windows processes - see https://github.com/**BorisSchaeling/asio<https://github.com/BorisSchaeling/asio>. This was already supported by Boost.Process 0.4 but the implementation was heavily criticized. The code has been moved now to Boost.Asio (or at least I hope it will - I'm in contact with Chris :) and provides a new Windows I/O object called object_handle. The implementation is now based on the Windows function RegisterWaitForSingleObject(). The new I/O object can not only be used to wait for processes. It can also be used to wait for events, mutexes, semaphores etc. As it's not process-related anymore, it makes sense to ship the code with Boost.Asio (where we have already similar Windows I/O objects called random_access_handle and stream_handle - object_handle fits in nicely).
Just curious, are these kinds of features cross platform?
These classes are for Windows only (they are all in the boost::asio::windows namespace). The latest development release of Asio (not yet in Boost) has a signal_set class (which will be in boost::asio). That one can be used to handle SIGCHLD (and wait asynchronously for child processes on Posix). In Boost.Process 0.4 I had created a cross platform Boost.Asio extension. Given the very different concepts on Windows and Posix it had a rather horrible implementation which outweighed the benefit of having a cross platform I/O object. Boris
[...]
participants (2)
-
Boris Schaeling
-
Daniel Larimer