diff options
Diffstat (limited to '3rdParty/Boost/src/boost/asio/detail/select_reactor.hpp')
| -rw-r--r-- | 3rdParty/Boost/src/boost/asio/detail/select_reactor.hpp | 27 | 
1 files changed, 24 insertions, 3 deletions
diff --git a/3rdParty/Boost/src/boost/asio/detail/select_reactor.hpp b/3rdParty/Boost/src/boost/asio/detail/select_reactor.hpp index f4f8bdf..6cefe50 100644 --- a/3rdParty/Boost/src/boost/asio/detail/select_reactor.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/select_reactor.hpp @@ -22,6 +22,7 @@        && !defined(BOOST_ASIO_HAS_EPOLL) \        && !defined(BOOST_ASIO_HAS_KQUEUE)) +#include <boost/limits.hpp>  #include <cstddef>  #include <boost/asio/detail/mutex.hpp>  #include <boost/asio/detail/op_queue.hpp> @@ -72,6 +73,10 @@ public:    // Destroy all user-defined handler objects owned by the service.    BOOST_ASIO_DECL void shutdown_service(); +  // Recreate internal descriptors following a fork. +  BOOST_ASIO_DECL void fork_service( +      boost::asio::io_service::fork_event fork_ev); +    // Initialise the task, but only if the reactor is not in its own thread.    BOOST_ASIO_DECL void init_task(); @@ -79,6 +84,12 @@ public:    // code on failure.    BOOST_ASIO_DECL int register_descriptor(socket_type, per_descriptor_data&); +  // Register a descriptor with an associated single operation. Returns 0 on +  // success, system error code on failure. +  BOOST_ASIO_DECL int register_internal_descriptor( +      int op_type, socket_type descriptor, +      per_descriptor_data& descriptor_data, reactor_op* op); +    // Post a reactor operation for immediate completion.    void post_immediate_completion(reactor_op* op)    { @@ -97,8 +108,17 @@ public:    // Cancel any operations that are running against the descriptor and remove    // its registration from the reactor. -  BOOST_ASIO_DECL void close_descriptor(socket_type descriptor, -      per_descriptor_data&); +  BOOST_ASIO_DECL void deregister_descriptor(socket_type descriptor, +      per_descriptor_data&, bool closing); + +  // Remote the descriptor's registration from the reactor. +  BOOST_ASIO_DECL void deregister_internal_descriptor( +      socket_type descriptor, per_descriptor_data& descriptor_data); + +  // Move descriptor registration from one descriptor_data object to another. +  BOOST_ASIO_DECL void move_descriptor(socket_type descriptor, +      per_descriptor_data& target_descriptor_data, +      per_descriptor_data& source_descriptor_data);    // Add a new timer queue to the reactor.    template <typename Time_Traits> @@ -119,7 +139,8 @@ public:    // number of operations that have been posted or dispatched.    template <typename Time_Traits>    std::size_t cancel_timer(timer_queue<Time_Traits>& queue, -      typename timer_queue<Time_Traits>::per_timer_data& timer); +      typename timer_queue<Time_Traits>::per_timer_data& timer, +      std::size_t max_cancelled = (std::numeric_limits<std::size_t>::max)());    // Run select once until interrupted or events are ready to be dispatched.    BOOST_ASIO_DECL void run(bool block, op_queue<operation>& ops);  | 
 Swift