|
Boost : |
Subject: Re: [boost] [gsoc] Boost.Process done
From: Ilya Sokolov (ilyasokol_at_[hidden])
Date: 2010-08-31 09:13:22
On 29.08.2010 23:27, Boris Schaeling wrote:
> On Fri, 27 Aug 2010 17:51:49 +0200, Adam Merz <adammerz_at_[hidden]> wrote:
>
>> Boris Schaeling <boris <at> highscore.de> writes:
>> <snip>
>>> If there are other ideas how to generate a unique name I can update
>>> the code
>>> (Windows provides an API to generate UUIDs but unfortunately it
>>> requires COM;
>>> on POSIX systems I'm not aware of any system function which could
>>> generate
>>> UUIDs).
>>>
>>> Boris
>>
>> For Windows, Neither UuidCreate nor UuidCreateSequential require COM.
>> Are these
>> not generally suitable for your needs?
>
> Thanks, you are right! I thought there is only CoCreateGuid. But what to
> do on POSIX systems? Reinventing Boost.Uuid doesn't make sense?
>
> Here's another idea: The behavior::named_pipe constructor accepts an
> optional parameter to set a pipe name. I could add a macro like
> BOOST_PROCESS_NO_BOOST_UUID which would remove Boost.Uuid code and
> require the caller to set a name. Then everyone is free to generate
> unique names with whatever functions are available?
As a user of the library, I'm not interested which pipes are used for
I/O - anonymous or named. IMO it is better to provide exactly one
stream behavior which supports both sync and async I/O. On windows
it would be implemented with named pipe and UuidCreateSequential
(as it "tends to be slightly faster than the UuidCreate" [1]).
On POSIX it would be implemented with anonymous pipe.
IMO anonymous and named pipes should be in the Boost.Interprocess
library.
[1] UuidCreateSequential Function
http://msdn.microsoft.com/en-us/library/aa379322(VS.85).aspx
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk