在Boost ASIO的epoll后端中重用描述符状态是否安全?

时间:2014-12-06 13:48:25

标签: c++ boost-asio epoll

ASIO的epoll_reactor后端通过存储在提交给descriptor_state的{​​{1}}的{​​{1}}中的指针,将data.ptr与每个文件描述符相关联。

当描述符退出时,无论是因为关联的套接字被关闭还是被销毁,epoll_event都会将epoll_ctl返回给epoll_reactor::deregister_descriptor,这会保留描述符状态的空闲列表。

此时,当要创建新套接字时,descriptor_state可以再次重复使用。

假设有多个工作线程正在调用object_pool。是什么确保一个优秀的epoll_wait调用不会返回一个epoll_event,其中data.ptr引用旧的descriptor_state,这可能已经被重用了?

0 个答案:

没有答案