Boost logo

Boost :

Subject: Re: [boost] [GSoC] Scheduled Executors beta 1 release
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2014-07-26 00:44:36


Le 25/07/14 11:10, Rob Stewart a écrit :
> On July 24, 2014 9:57:39 PM EDT, Ian Forbes <ian.forbes_at_[hidden]> wrote:
>> Hello,
>>
>> I am working on implementing scheduled executors as part of GSoC 2014
>> and am ready to announce my beta 1 release.
>> For more information on my project please see my original proposal at
>> www.cs.mcgill.ca/~iforbe
>> All my work is currently on this branch of boost.thread.
>> https://github.com/BoostGSoC14/boost.thread.executors .
>> I have written a fairly extensive README about design and
>> implementation on this page.
> Your queue is flawed: what if T's copy constructor is invoked when calling pull(), and it throws an exception? Also, pull() is conventionally called "pop".
Hi,

what about
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3533.html#exception_handling?

The overload

T pull();

must be available only if T move does't throws.

Otherwise, there is the overload

void pull(T&);

which could take care of the exceptions thrown by the copy/move
constructor.

IMO, pop is not a good name as pull does more than pop an element, it
moves the element. I have used pull in Boost.Thread instead of pop_value
(n3533). I think that pull conveys quite clearly the intent.

Vicente


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