diff --git a/kernel/process.c b/kernel/process.c index 76c5ac1d..cdd4ab35 100644 --- a/kernel/process.c +++ b/kernel/process.c @@ -3139,7 +3139,8 @@ redo: } } - if (v->flags & CPU_FLAG_NEED_MIGRATE) { + if (v->flags & CPU_FLAG_NEED_MIGRATE || + prev->status == PS_EXITED) { next = &cpu_local_var(idle); } else { /* Pick a new running process or one that has a pending signal */