|
Boost : |
Subject: Re: [boost] [process] Formal Review starts today, 27 October
From: Klemens Morgenstern (klemens.morgenstern_at_[hidden])
Date: 2016-11-01 18:57:02
Am 01.11.2016 um 23:48 schrieb Gavin Lambert:
> On 1/11/2016 21:41, Niall Douglas wrote:
>> You also don't need to use completion ports like ASIO does for async
>> i/o on Windows which are slightly complex to use. There is a much
>> simpler solution called alertable i/o which AFIO v2 uses which has NT
>> dispatch for you all pending async i/o callbacks every time you sleep
>> a thread. Examine AFIO v2's source code for ideas if you like, you
>> can throw together an async pipe i/o multiplexed reactor with very
>> little effort in no time because NT has already implemented an "ASIO"
>> for you, no ASIO needed.
>
> Having written my own mostly-lock-free ASIO-lite based around
> completion ports, I can confirm that they're not at all complex to
> use. Meanwhile I shy away from alertable I/O because it's
> thread-affine and requires remembering to always perform alertable
> waits, both of which seem fragile to me. Still, the advantage of both
> methods existing is that you can use whatever you feel most
> comfortable with. :)
>
I guess the right approach for boost.process would be, to add support
for boost.afio when it comes out, as it does now for boost.asio.
Elsewise you'd just have multiple libraries doing the same thing.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk