Boost C++ Libraries: Ticket #11734: future::then(Cont) should be able to execute the contination on undetermined thread https://svn.boost.org/trac10/ticket/11734 <p> Concurrency TS defines future::then() as </p> <p> "the continuation <code>INVOKE(DECAY_COPY(std::forward&lt;F&gt;(func)), std::move(*this))</code> is called on an unspecified thread of execution with the call to <code>DECAY_COPY()</code> being evaluated in the thread that called then". </p> <p> <code>boost::future&lt;T&gt;::then()</code> has more overloads than Concurrency TS. However when not requested explicitly then Boost.Thread should conform to the proposed standard. </p> <p> As Concurrency TS doesn't have neither <code>async</code>, the future can be created only by a <code>promise</code> or a a <code>packaged_task</code>, so that there are neither futures with launch policy async nor deferred. </p> <p> In order to be as clear as possible, boost::future&lt;T&gt;::then(Cont) can call the continuation on an unspecified thread of execution. </p> <p> If the user want other behavior, it can use then(launch_policy, Cont) or then(Executor, Cont) must wrap the continuation. </p> <p> However the current specification inherit from the parent future when there is no executor nor launch policy. </p> <p> If there is an interest and in order to provide the current behavior even with a different interface we can add an inherit policy </p> <p> Before </p> <pre class="wiki">f.then(c); </pre><p> After </p> <pre class="wiki">f.then(launch::inherit, c); </pre> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/11734 Trac 1.4.3 viboes Sat, 17 Oct 2015 22:11:24 GMT owner, status changed https://svn.boost.org/trac10/ticket/11734#comment:1 https://svn.boost.org/trac10/ticket/11734#comment:1 <ul> <li><strong>owner</strong> changed from <span class="trac-author">Anthony Williams</span> to <span class="trac-author">viboes</span> </li> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">assigned</span> </li> </ul> Ticket viboes Sat, 17 Oct 2015 22:26:17 GMT description changed https://svn.boost.org/trac10/ticket/11734#comment:2 https://svn.boost.org/trac10/ticket/11734#comment:2 <ul> <li><strong>description</strong> modified (<a href="/trac10/ticket/11734?action=diff&amp;version=2">diff</a>) </li> </ul> Ticket viboes Sat, 17 Oct 2015 22:28:19 GMT milestone changed https://svn.boost.org/trac10/ticket/11734#comment:3 https://svn.boost.org/trac10/ticket/11734#comment:3 <ul> <li><strong>milestone</strong> <span class="trac-field-old">To Be Determined</span> → <span class="trac-field-new">Boost 1.60.0</span> </li> </ul> <p> <a class="ext-link" href="https://github.com/boostorg/thread/commit/b4744a2aa8920295bf259f6e8e87e68f9187735a"><span class="icon">​</span>https://github.com/boostorg/thread/commit/b4744a2aa8920295bf259f6e8e87e68f9187735a</a> </p> Ticket viboes Sat, 17 Oct 2015 22:37:50 GMT <link>https://svn.boost.org/trac10/ticket/11734#comment:4 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/11734#comment:4</guid> <description> <p> <a class="ext-link" href="https://github.com/boostorg/thread/commit/1e4e9ab84ce7004268a43a2b286ec3ecf447e6e6"><span class="icon">​</span>https://github.com/boostorg/thread/commit/1e4e9ab84ce7004268a43a2b286ec3ecf447e6e6</a> </p> </description> <category>Ticket</category> </item> <item> <dc:creator>viboes</dc:creator> <pubDate>Wed, 21 Oct 2015 22:20:24 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/11734#comment:5 https://svn.boost.org/trac10/ticket/11734#comment:5 <ul> <li><strong>status</strong> <span class="trac-field-old">assigned</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> <p> <a class="ext-link" href="https://github.com/boostorg/thread/commit/4321b59c1eedde71da58f592aa4c741a1feff046"><span class="icon">​</span>https://github.com/boostorg/thread/commit/4321b59c1eedde71da58f592aa4c741a1feff046</a> </p> Ticket