Boost logo

Boost :

Subject: Re: [boost] Boost.Process progress
From: Boris Schaeling (boris_at_[hidden])
Date: 2011-08-03 02:14:18


On Tue, 02 Aug 2011 15:53:27 +0200, Daniel Larimer <dlarimer_at_[hidden]>
wrote:

> On Mon, Aug 1, 2011 at 7:20 PM, Boris Schaeling <boris_at_[hidden]>
> 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>.
>> 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

> [...]


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk