65 [[nodiscard]]
auto IsEmpty() const ->
bool override {
auto Dequeue(TaskControlBlock *task) -> void override
从队列中移除任务
auto Enqueue(TaskControlBlock *task) -> void override
将 idle 任务加入队列
auto GetQueueSize() const -> size_t override
获取队列大小
~IdleScheduler() override=default
auto OnTimeSliceExpired(TaskControlBlock *task) -> bool override
时间片耗尽处理(idle 任务不使用时间片)
auto operator=(const IdleScheduler &) -> IdleScheduler &=delete
auto OnTick(TaskControlBlock *current) -> bool override
Tick 更新(idle 任务不需要时间片管理)
auto IsEmpty() const -> bool override
判断队列是否为空
auto PickNext() -> TaskControlBlock *override
选择下一个要运行的任务(返回 idle 任务)
auto OnScheduled(TaskControlBlock *task) -> void override
任务被调度时的处理(idle 任务不需要特殊处理)
TaskControlBlock * idle_task_
Idle 任务指针(通常只有一个)
IdleScheduler(const IdleScheduler &)=delete
auto OnPreempted(TaskControlBlock *task) -> void override
任务被抢占时的处理(idle 任务不需要特殊处理)
auto operator=(IdleScheduler &&) -> IdleScheduler &=delete
IdleScheduler(IdleScheduler &&)=delete
size_t total_dequeues
总出队次数
size_t total_preemptions
总抢占次数
size_t total_enqueues
总入队次数