Subject: [Boost-bugs] [Boost C++ Libraries] #11851: epoll_reactor::deregister_descriptor() release descriptor_data
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2015-12-17 08:04:45
#11851: epoll_reactor::deregister_descriptor() release descriptor_data
-------------------------------+----------------------------
Reporter: ljl <404140036@â¦> | Owner: chris_kohlhoff
Type: Bugs | Status: new
Milestone: To Be Determined | Component: asio
Version: Boost 1.58.0 | Severity: Problem
Keywords: |
-------------------------------+----------------------------
epoll_reactor::deregister_descriptor() function puts descriptor_state
object in its object_pool, so it can be reused by
epoll_reactor::register_descriptor() immediately, but the descriptor_state
object may be yet referenced somewhere, for example, epoll_reactor::run()
puts it in op_queue<operation>, and be about to execute
operation::complete() in task_io_service::do_run_one() function. it will
make logic problems when the descriptor_state object is reused indeed in a
third thread by calling epoll_reactor::allocate_descriptor_state().
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/11851> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:19 UTC