poll / epoll兼容计时器

时间:2009-12-22 13:04:19

标签: linux file timer epoll

问候,

我想知道是否有办法将计时器与linux poll / epoll API结合使用。 我已经使用了epoll,如果我能让计时器成为我队列中的另一个epoll事件,它会与现有代码整合得非常好。

可能的方法是,基于文件的计时器,如

echo 400;now > /dev/timer ; cat /dev/timer ; # outputs after 400ms "now"

就像一个虚构的例子。 有这样的事吗?或者还有其他方法可以将它与epoll API集成吗?

- Marenz

2 个答案:

答案 0 :(得分:5)

使用epoll进行定时器是微不足道的,因为epoll_wait也需要一个超时参数;您只需将所有计时器放入优先级队列,并将超时设置为从现在到第一个之间的时间,然后为该计时器触发事件​​。

或者使用libevent提供类似的功能。

是的,如果你真的想要,你可以使用timerfd(),但是没有必要。

答案 1 :(得分:0)

watch -n 0.4命令在这种情况下是否有用?