diff options
Diffstat (limited to '3rdparty/asio/include/asio/detail/impl/kqueue_reactor.hpp')
-rw-r--r-- | 3rdparty/asio/include/asio/detail/impl/kqueue_reactor.hpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/3rdparty/asio/include/asio/detail/impl/kqueue_reactor.hpp b/3rdparty/asio/include/asio/detail/impl/kqueue_reactor.hpp index eaa7a55e299..3f79e9f7217 100644 --- a/3rdparty/asio/include/asio/detail/impl/kqueue_reactor.hpp +++ b/3rdparty/asio/include/asio/detail/impl/kqueue_reactor.hpp @@ -2,7 +2,7 @@ // detail/impl/kqueue_reactor.hpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2016 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com) // Copyright (c) 2005 Stefan Arentz (stefan at soze dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying @@ -20,11 +20,19 @@ #if defined(ASIO_HAS_KQUEUE) +#include "asio/detail/scheduler.hpp" + #include "asio/detail/push_options.hpp" namespace asio { namespace detail { +inline void kqueue_reactor::post_immediate_completion( + operation* op, bool is_continuation) const +{ + scheduler_.post_immediate_completion(op, is_continuation); +} + template <typename Time_Traits> void kqueue_reactor::add_timer_queue(timer_queue<Time_Traits>& queue) { @@ -71,6 +79,18 @@ std::size_t kqueue_reactor::cancel_timer(timer_queue<Time_Traits>& queue, } template <typename Time_Traits> +void kqueue_reactor::cancel_timer_by_key(timer_queue<Time_Traits>& queue, + typename timer_queue<Time_Traits>::per_timer_data* timer, + void* cancellation_key) +{ + mutex::scoped_lock lock(mutex_); + op_queue<operation> ops; + queue.cancel_timer_by_key(timer, ops, cancellation_key); + lock.unlock(); + scheduler_.post_deferred_completions(ops); +} + +template <typename Time_Traits> void kqueue_reactor::move_timer(timer_queue<Time_Traits>& queue, typename timer_queue<Time_Traits>::per_timer_data& target, typename timer_queue<Time_Traits>::per_timer_data& source) |