История изменений
Исправление quasimoto, (текущая версия) :
Event loops и планировщики писать
Для примера:
class Sched {
    ...
    enum class HaltState {
        to,
        se
    };
    // "bot"
    HaltState run(...) {
        while (true) {
            ...
            if (...) return HaltState::to;
            if (...) return HaltState::se;
        }
    }
    // "f"
    static void handlePossibleHalts(HaltState state) {
        ...
    }
};
    Sched::handlePossibleHalts(Sched(...).run(...));
Исходная версия quasimoto, :
Event loops и планировщики писать
Для примера:
class Sched {
    ...
    enum class HaltState {
        to,
        se
    };
    HaltState run(...) {
        while (true) {
            ...
            if (...) return HaltState::to;
            if (...) return HaltState::se;
        }
    }
    static void handlePossibleHalts(HaltState state) {
        ...
    }
};
    Sched::handlePossibleHalts(Sched(...).run(...));