Мне нужно добавить поддержку таймеров в приложение на основе портов завершения ввода-вывода (IOCP). Я хотел бы избежать использования определенного потока для управления таймерами.
В Linux вы можете создать таймер, который доставляет уведомления об истечении срока действия через файловый дескриптор (см. man timerfd.h), поэтому его удобно использовать, например, с epoll, если ваше приложение основано на epoll.
В Windows можно использовать «таймеры ожидания» с асинхронным вызовом процедуры (ACP) (см. http://msdn.microsoft.com/en-us/library/ms686898(v=VS.85)).aspx)
Если вам интересно, kqueue (BSD, Mac OS) по умолчанию поддерживает таймеры (см. EVFILT_TIMER).
С портами завершения ввода-вывода мы должны использовать объекты, которые поддерживают перекрывающийся ввод-вывод. Итак, есть ли такой таймер для IOCP?
С наилучшими пожеланиями,
Седрик