X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ceph%2Fsrc%2Fboost%2Flibs%2Ffiber%2Fexamples%2Fasio%2Fautoecho.cpp;h=06b4027a0138b003a8c94786a84a81d2f4e814bc;hb=b32b81446b3b05102be0267e79203f59329c1d97;hp=bc9f5700f1d444a311b71c357bdee04786a0a74d;hpb=215dd7151453fae88e6f968c975b6ce309d42dcf;p=ceph.git diff --git a/ceph/src/boost/libs/fiber/examples/asio/autoecho.cpp b/ceph/src/boost/libs/fiber/examples/asio/autoecho.cpp index bc9f5700f..06b4027a0 100644 --- a/ceph/src/boost/libs/fiber/examples/asio/autoecho.cpp +++ b/ceph/src/boost/libs/fiber/examples/asio/autoecho.cpp @@ -6,12 +6,13 @@ #include #include -#include #include +#include +#include +#include +#include #include #include -#include -#include #include #include @@ -152,11 +153,11 @@ void session( socket_ptr sock) { /***************************************************************************** * listening server *****************************************************************************/ -void server( boost::asio::io_service & io_svc, tcp::acceptor & a) { +void server( std::shared_ptr< boost::asio::io_service > const& io_svc, tcp::acceptor & a) { print( tag(), ": echo-server started"); try { for (;;) { - socket_ptr socket( new tcp::socket( io_svc) ); + socket_ptr socket( new tcp::socket( * io_svc) ); boost::system::error_code ec; a.async_accept( * socket, @@ -170,21 +171,21 @@ void server( boost::asio::io_service & io_svc, tcp::acceptor & a) { } catch ( std::exception const& ex) { print( tag(), ": caught exception : ", ex.what()); } - io_svc.stop(); + io_svc->stop(); print( tag(), ": echo-server stopped"); } /***************************************************************************** * fiber function per client *****************************************************************************/ -void client( boost::asio::io_service & io_svc, tcp::acceptor & a, +void client( std::shared_ptr< boost::asio::io_service > const& io_svc, tcp::acceptor & a, boost::fibers::barrier& barrier, unsigned iterations) { print( tag(), ": echo-client started"); for (unsigned count = 0; count < iterations; ++count) { - tcp::resolver resolver( io_svc); + tcp::resolver resolver( * io_svc); tcp::resolver::query query( tcp::v4(), "127.0.0.1", "9999"); tcp::resolver::iterator iterator = resolver.resolve( query); - tcp::socket s( io_svc); + tcp::socket s( * io_svc); boost::asio::connect( s, iterator); for (unsigned msg = 0; msg < 1; ++msg) { std::ostringstream msgbuf; @@ -229,25 +230,25 @@ void client( boost::asio::io_service & io_svc, tcp::acceptor & a, int main( int argc, char* argv[]) { try { //[asio_rr_setup - boost::asio::io_service io_svc; + std::shared_ptr< boost::asio::io_service > io_svc = std::make_shared< boost::asio::io_service >(); boost::fibers::use_scheduling_algorithm< boost::fibers::asio::round_robin >( io_svc); //] print( "Thread ", thread_names.lookup(), ": started"); //[asio_rr_launch_fibers // server - tcp::acceptor a( io_svc, tcp::endpoint( tcp::v4(), 9999) ); - boost::fibers::fiber( server, std::ref( io_svc), std::ref( a) ).detach(); + tcp::acceptor a( * io_svc, tcp::endpoint( tcp::v4(), 9999) ); + boost::fibers::fiber( server, io_svc, std::ref( a) ).detach(); // client const unsigned iterations = 2; const unsigned clients = 3; boost::fibers::barrier b( clients); for ( unsigned i = 0; i < clients; ++i) { boost::fibers::fiber( - client, std::ref( io_svc), std::ref( a), std::ref( b), iterations).detach(); + client, io_svc, std::ref( a), std::ref( b), iterations).detach(); } //] //[asio_rr_run - io_svc.run(); + io_svc->run(); //] print( tag(), ": io_service returned"); print( "Thread ", thread_names.lookup(), ": stopping");