diff options
Diffstat (limited to '3rdparty/asio/include/asio/detail/impl/dev_poll_reactor.ipp')
-rw-r--r-- | 3rdparty/asio/include/asio/detail/impl/dev_poll_reactor.ipp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/3rdparty/asio/include/asio/detail/impl/dev_poll_reactor.ipp b/3rdparty/asio/include/asio/detail/impl/dev_poll_reactor.ipp index 42efcd624aa..c9c53fbeafd 100644 --- a/3rdparty/asio/include/asio/detail/impl/dev_poll_reactor.ipp +++ b/3rdparty/asio/include/asio/detail/impl/dev_poll_reactor.ipp @@ -2,7 +2,7 @@ // detail/impl/dev_poll_reactor.ipp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -148,15 +148,24 @@ void dev_poll_reactor::move_descriptor(socket_type, { } +void dev_poll_reactor::call_post_immediate_completion( + operation* op, bool is_continuation, const void* self) +{ + static_cast<const dev_poll_reactor*>(self)->post_immediate_completion( + op, is_continuation); +} + void dev_poll_reactor::start_op(int op_type, socket_type descriptor, dev_poll_reactor::per_descriptor_data&, reactor_op* op, - bool is_continuation, bool allow_speculative) + bool is_continuation, bool allow_speculative, + void (*on_immediate)(operation*, bool, const void*), + const void* immediate_arg) { asio::detail::mutex::scoped_lock lock(mutex_); if (shutdown_) { - post_immediate_completion(op, is_continuation); + on_immediate(op, is_continuation, immediate_arg); return; } @@ -169,7 +178,7 @@ void dev_poll_reactor::start_op(int op_type, socket_type descriptor, if (op->perform()) { lock.unlock(); - scheduler_.post_immediate_completion(op, is_continuation); + on_immediate(op, is_continuation, immediate_arg); return; } } |