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
,这可能已经被重用了?