Пишу приложение, в котором обмен сообщениями между несколькими потоками я собираюсь организовать при помощи очередей сообщений. При чем каждый поток должен ожидать сообщения от нескольких потоков одновременно. То есть, алгоритм ожидания событий должен быть полностью идентичен алгоритму ожидания событий в select(). Сами очереди событий буду писать сам, объектами SysV пользоваться не буду, так как мне не нужно взаимодействие между процессами. Проблема в том, что все алгоритмы, реализации которых мне удалось найти предлагают различные варианты с периодическим опросом и ожиданием, типа sleep(). Но в них присутствует задержка на обработку событий и бессмысленное периодическое просыпание потоков для проверки. Есть ли вариант реализации без этих дефектов? Прошу помощи с информацией.