コード例 #1
0
void worker(promise<int> p) {
  try {
    //何か処理をして結果をpromiseに設定する
    p.set_value(computeSomething());
  } catch(...) {
    //例外が発生したら例外をpromiseに設定する
    p.set_exception(current_exception());
  }
}
コード例 #2
0
    void
    on_write(const std::error_code& ec) {
        CF_DBG("<< write: %s", CF_EC(ec));

        if (ec) {
            session->on_error(ec);
            pr.set_exception(std::system_error(ec));
        } else {
            pr.set_value();
        }
    }
コード例 #3
0
ファイル: asio.cpp プロジェクト: beimprovised/Boost.CMT
 void read_write_handler( const promise<size_t>::ptr& p, const boost::system::error_code& ec, size_t bytes_transferred ) {
     if( !ec ) p->set_value(bytes_transferred);
     else p->set_exception( boost::copy_exception( boost::system::system_error(ec) ) );
 }