void accept( AcceptorType& acc, SocketType& sock ) { //promise<boost::system::error_code>::ptr p( new promise<boost::system::error_code>("fc::asio::tcp::accept") ); promise<void>::ptr p( new promise<void>("fc::asio::tcp::accept") ); acc.async_accept( sock, boost::bind( fc::asio::detail::error_handler, p, _1 ) ); p->wait(); //if( ec ) BOOST_THROW_EXCEPTION( boost::system::system_error(ec) ); }
void accept( AcceptorType& acc, SocketType& sock ) { promise<boost::system::error_code>::ptr p( new promise<boost::system::error_code>("fc::asio::tcp::accept") ); acc.async_accept( sock, boost::bind( fc::asio::detail::error_handler, p, _1 ) ); auto ec = p->wait(); if( !ec ) sock.non_blocking(true); if( ec ) BOOST_THROW_EXCEPTION( boost::system::system_error(ec) ); }