select() — отличный системный вызов. Вы можете упаковать любое количество дескрипторов файлов, дескрипторов сокетов, каналов и т. д. и синхронно получать уведомления, когда ввод становится доступным.
Есть ли способ создать интервальный/однократный таймер и использовать его с select()? Это спасло бы меня от использования нескольких потоков для ввода-вывода и синхронизации.