From f923e03565eda9ee2a454e9498de35d9f4d38ee5 Mon Sep 17 00:00:00 2001 From: YOSHIDA Masanori Date: Wed, 25 Jun 2014 16:40:05 +0900 Subject: [PATCH] fix to make CPU idle when len(runq) != 0 but all queued are sleeping --- kernel/process.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/kernel/process.c b/kernel/process.c index cd447d49..ae824878 100644 --- a/kernel/process.c +++ b/kernel/process.c @@ -1742,10 +1742,6 @@ void schedule(void) list_add_tail(&prev->sched_list, &(v->runq)); ++v->runq_len; } - - if (!v->runq_len) { - v->status = CPU_STATUS_IDLE; - } } /* Pick a new running process */ @@ -1759,6 +1755,7 @@ void schedule(void) /* No process? Run idle.. */ if (!next) { next = &cpu_local_var(idle); + v->status = CPU_STATUS_IDLE; } if (prev != next) {