X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ceph%2Fsrc%2Fboost%2Fboost%2Fasio%2Fdetail%2Fresolve_endpoint_op.hpp;h=6d6e37cc205b2edb7987619e2ae280f34d0c3d82;hb=20effc670b57271cb089376d6d0800990e5218d5;hp=aae503c4f850a7bb858c4faf57a450fedeaca10d;hpb=a71831dadd1e1f3e0fa70405511f65cc33db0498;p=ceph.git diff --git a/ceph/src/boost/boost/asio/detail/resolve_endpoint_op.hpp b/ceph/src/boost/boost/asio/detail/resolve_endpoint_op.hpp index aae503c4f..6d6e37cc2 100644 --- a/ceph/src/boost/boost/asio/detail/resolve_endpoint_op.hpp +++ b/ceph/src/boost/boost/asio/detail/resolve_endpoint_op.hpp @@ -16,15 +16,16 @@ #endif // defined(_MSC_VER) && (_MSC_VER >= 1200) #include -#include -#include #include #include #include #include +#include #include #include #include +#include +#include #if defined(BOOST_ASIO_HAS_IOCP) # include @@ -61,9 +62,8 @@ public: endpoint_(endpoint), scheduler_(sched), handler_(BOOST_ASIO_MOVE_CAST(Handler)(handler)), - io_executor_(io_ex) + work_(handler_, io_ex) { - handler_work::start(handler_, io_executor_); } static void do_complete(void* owner, operation* base, @@ -96,11 +96,13 @@ public: // The operation has been returned to the main io_context. The completion // handler is ready to be delivered. - // Take ownership of the operation's outstanding work. - handler_work w(o->handler_, o->io_executor_); - BOOST_ASIO_HANDLER_COMPLETION((*o)); + // Take ownership of the operation's outstanding work. + handler_work w( + BOOST_ASIO_MOVE_CAST2(handler_work)( + o->work_)); + // Make a copy of the handler so that the memory can be deallocated // before the upcall is made. Even if we're not about to make an upcall, // a sub-object of the handler may be the true owner of the memory @@ -127,7 +129,7 @@ private: endpoint_type endpoint_; scheduler_impl& scheduler_; Handler handler_; - IoExecutor io_executor_; + handler_work work_; results_type results_; };