Boost logo

Boost :

Subject: Re: [boost] [next gen future-promise] What to call the monadic return type?
From: Rob Stewart (rob.stewart_at_[hidden])
Date: 2015-05-26 04:40:58


On May 25, 2015 6:26:48 PM EDT, Niall Douglas <s_sourceforge_at_[hidden]> wrote:
> On 25 May 2015 at 15:29, Rob Stewart wrote:
>
> > > I would imagine destroying an open file handle would close it.
> > > Anyway, that really isn't important to the code examples given the
> > > topic, it was never mentioned what a handle_type is, I had an
> > > afio::async_io_handle in mind but it doesn't matter.
> >
> > Your example calls ::open() and fd is an int.
>
> Sorry, I must be missing something really obvious here.
>
> I was assuming that handle_type consumes a valid fd and takes
> ownership of it. Are not the examples correct then, or if a
> particular example (of the four) is wrong, can you say which one?

The problem was in my inferences when reading the code. I wasn't thinking of the make_shared() expression as creating a handle_type from an implicit constructor taking an int when I read the examples. I saw, in effect, make_shared<int>(fd), with handle_type as a typedef for int.

Since the reader isn't necessarily familiar with a class like your async_io_handle, it might be worth a sentence to indicate that handle_type takes ownership of the file descriptor to ensure people don't repeat my mistake.

___
Rob

(Sent from my portable computation engine)


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