boost :: async - 不确定实现

时间:2012-11-10 23:34:57

标签: c++ boost asynchronous future

在boost 1.52中查看新的boost::async实现,我对launch::deferred的实现有点不确定:

else if (int(policy) & int(launch::deferred))
{
  packaged_task<R> pt( boost::forward<F>(f) );

  BOOST_THREAD_FUTURE<R> ret = pt.get_future();
  return ::boost::move(ret);
}

我不太明白这是如何工作的。一旦broken_promise被销毁,这总是会抛出packaged_task例外吗?