Subject: Re: [boost] [process] Formal Review starts today, 27 October
From: Bjorn Reese (breese_at_[hidden])
Date: 2016-11-20 09:02:25


On 11/20/2016 01:38 PM, Klemens Morgenstern wrote:

> How? How can I turn a sequence of calls valid when the object stays the
> same and each call is valid?

Look at the sqlpp11 codebase.

> I'm sorry, but I think you still do not understand how that works.

Oh I understand it perfectly fine. I am pointing out that your yield
integration does not fulfill the requirements for asynchronous
operations. Look at the Asio references implementation and tell me if
you can find any async_ functions that take an error_code output
parameter.

> Two things can hapen:
>
> 1. The process launches successfully
> --> No error in ec, the coroutine is suspended the wait-handle might
> fail, which is not captured (but could be with yield[ec_yield])
> 2. The process does not launch
> --> ec is set, the couroutine is NOT suspended and nor error can
> occur since the code does not wait for the handle (obviously, since
> there is none) so yield does nothing.

Case 2 is where you deviate from the Asio model.

Normally we post a function on the io_service that calls the handler
with the error to fullfil the requirement that all errors are reported
via the handler.