diff --git a/src/sched/mod.rs b/src/sched/mod.rs index 8fd267f..07b2cd6 100644 --- a/src/sched/mod.rs +++ b/src/sched/mod.rs @@ -151,7 +151,11 @@ pub fn insert_task(task: Arc) { pub fn insert_task_cross_cpu(task: Arc) { let cpu = get_next_cpu(); - message_cpu(cpu.value(), Message::PutTask(task)).expect("Failed to send task to CPU"); + if cpu == CpuId::this() { + insert_task(task); + } else { + message_cpu(cpu.value(), Message::PutTask(task)).expect("Failed to send task to CPU"); + } } pub struct SchedState {