Boost logo

Boost :

Subject: Re: [boost] [afio] Formal review of Boost.AFIO
From: Gavin Lambert (gavinl_at_[hidden])
Date: 2015-08-25 04:22:53


On 23/08/2015 13:08, Ahmed Charles wrote:
> The documentation can be found here:
> https://boostgsoc13.github.io/boost.afio/doc/html/afio.html

Out of curiosity, in the Hello World example, is there any benefit of
using when_all_p on all individual futures instead of merely waiting for
the "read" future alone?

Since all the previous futures are cascaded to "read", any errors raised
by earlier ops should be cascaded to the later ops anyway, so "read"
should succeed only if all prior ops succeed (and presumably not even be
attempted if prior ops failed). Or are you doing something different
with errors?

Also, what *does* happen if, say, "written2" has an error? Does the
close and rmfile still occur? And does this change when when_all_p
throws and "deletedfile" is never waited for?

On an unrelated note, I know that this has come up before but I do think
that you should have a rationale section on use of internal APIs on
Windows; why you're doing that, and benefits and caveats. (They're not
undocumented APIs as some claim, but they *are* subsystem-layer APIs and
as such aren't guaranteed to behave the same way on different Windows
versions, particularly future ones, as they're expected to be used only
by code that is upgraded at the same time as Windows itself. How likely
that is to be a real issue I don't know, but it seems at least worthy of
mention.)


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