嗯。考虑的过timerfd的方案。主要是得解决一个context同时被两个线程处理的情况。
【 在 wallyz 的大作中提到: 】
: 常规非阻塞模型下的超时处理很直接,不是什么难题,
: 每个线程维护一个multimap, key是超时时间戳(当前时间+比如5秒),value指向控制块(或者你说的context),每次io之后更新控制块在multimap时间戳
: 另外起一个timerfd让epoll一起监视,每隔比如100ms timerfd返回,检查multimap,以当前时间戳取upper_bound,从begin开始到upper_bound挨个清理(也就是你说的夭折处理)
: ...................
--
修改:ylh0315 FROM 221.218.61.*
FROM 221.218.61.*