<div dir="ltr"><div dir="ltr">>> I happen to really like timerfds but they are a linuxism.<br>> How would they be used here?<br><br>From what I understand, after having used timerfd for a small “projet<br>de réseau”…<br><br>Instead of what babeld is currently doing:<br><br>struct timeval tv;<br>gettime(&now);<br>timeval_min(&tv, &some_timer);<br>select(maxfd + 1, &readfds, NULL, NULL, &tv);<br><br><br>You create a file descriptor for each new timer. You can chose which<br>clock to use, and if the timer should fire periodically, or at some<br>defined later time. The fd can be monitored with select. When the<br>timer expires, it generates some kind of read event and select exits.<br>A timerfd can be re-armed after it expires, it’s reusable.<br><br>The API is quite minimalistic. Of course, it’s all managed by the<br>kernel. timerfd_create, timerfd_settime, timerfd_gettime.<br><br><br>LWN and the manual are my sources.<br>A quick grep shows that libev does not use timerfd, but libevent does.<br><br>-- Antonin<br><br></div></div>