Le 25/07/14 11:10, Rob Stewart a écrit :
On July 24, 2014 9:57:39 PM EDT, Ian Forbes
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... 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