summaryrefslogtreecommitdiff
path: root/boost/asio/detail/epoll_reactor.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/asio/detail/epoll_reactor.hpp')
-rw-r--r--boost/asio/detail/epoll_reactor.hpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/boost/asio/detail/epoll_reactor.hpp b/boost/asio/detail/epoll_reactor.hpp
index 64c5b2704c..34ed0370f5 100644
--- a/boost/asio/detail/epoll_reactor.hpp
+++ b/boost/asio/detail/epoll_reactor.hpp
@@ -63,6 +63,7 @@ public:
BOOST_ASIO_DECL descriptor_state();
void set_ready_events(uint32_t events) { task_result_ = events; }
+ void add_ready_events(uint32_t events) { task_result_ |= events; }
BOOST_ASIO_DECL operation* perform_io(uint32_t events);
BOOST_ASIO_DECL static void do_complete(
io_service_impl* owner, operation* base,
@@ -123,14 +124,22 @@ public:
per_descriptor_data& descriptor_data);
// Cancel any operations that are running against the descriptor and remove
- // its registration from the reactor.
+ // its registration from the reactor. The reactor resources associated with
+ // the descriptor must be released by calling cleanup_descriptor_data.
BOOST_ASIO_DECL void deregister_descriptor(socket_type descriptor,
per_descriptor_data& descriptor_data, bool closing);
- // Remote the descriptor's registration from the reactor.
+ // Remove the descriptor's registration from the reactor. The reactor
+ // resources associated with the descriptor must be released by calling
+ // cleanup_descriptor_data.
BOOST_ASIO_DECL void deregister_internal_descriptor(
socket_type descriptor, per_descriptor_data& descriptor_data);
+ // Perform any post-deregistration cleanup tasks associated with the
+ // descriptor data.
+ BOOST_ASIO_DECL void cleanup_descriptor_data(
+ per_descriptor_data& descriptor_data);
+
// Add a new timer queue to the reactor.
template <typename Time_Traits>
void add_timer_queue(timer_queue<Time_Traits>& timer_queue);