таймер, совместимый с опросом / epoll - PullRequest
0 голосов
/ 22 декабря 2009

Привет,

Мне было интересно, есть ли способ использовать таймер в сочетании с linux poll / epoll API. Я уже использую epoll, и он очень хорошо интегрируется с существующим кодом, если бы я мог сделать таймер просто очередным событием epoll в моей очереди.

Возможно, это может быть файловый таймер, например

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

просто как воображаемый пример. Есть ли что-то подобное? Или есть другие способы интегрировать его с API epoll?

- Marenz

Ответы [ 2 ]

5 голосов
/ 22 декабря 2009

Таймеры с epoll тривиальны, потому что epoll_wait также принимает параметр timeout; вы просто помещаете все свои таймеры в очередь приоритетов и устанавливаете время ожидания между текущим и первым временем, а затем запускаете события для этого таймера.

Или используйте использовать libevent, который предоставляет нечто подобное.

Да, вы МОЖЕТЕ использовать timerfd (), если действительно хотите, но в этом нет необходимости.

0 голосов
/ 22 декабря 2009

Может ли команда watch -n 0.4 быть полезной в этой ситуации?

...