Есть у кого под рукой готовая реализация?
Я накорябал на колене, что то бажненько получилось, охота посмотреть как большие дядьки делают.
Целевое назначение: шедулить задачи в рамках одного потока с микросекундным разрешением(можно порядка 100us), ну и ессно, что бы оно спало, пока задач нет.
Мой цикл выглядит так:
void run() {
    std::unique_lock<std::mutex> lock(lock_);
    auto wait_condition = [this](){return !tasks_.empty();};
    while(started_){
        event_.wait(lock, wait_condition);
        DeadlineT deadline;
        while (started_ && process_tasks(deadline)) {
            event_.wait_until(lock, deadline, wait_condition);
        }
    }
}
//process_tasks - выбирает таски с дэдлайном <= now, выполняет их,   возвращает минимальный дэдлайн оставшихся и не пуста ли очередь задач






