From ebd4613bfc8d926503f7de38240529ce0b1997ee Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 22 Apr 2010 11:52:23 -0700 Subject: [PATCH] init: Fix init spinning once init.rc is complete When the init process ran out of actions to execute, cur_action was NULL and action_queue_empty() was true, but cur_command was still set. This patch clears cur_command when a new action is retreived, and only depends on cur_action and action_queue_empty() to determine the poll timeout. Change-Id: Iaa95063c8c267a5b1ada9f20363b99c433e61ac4 --- init/init.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/init/init.c b/init/init.c index 4f4059b8d..8f95da78f 100755 --- a/init/init.c +++ b/init/init.c @@ -492,6 +492,7 @@ void execute_one_command(void) if (!cur_action || !cur_command || is_last_command(cur_action, cur_command)) { cur_action = action_remove_queue_head(); + cur_command = NULL; if (!cur_action) return; INFO("processing action %p (%s)\n", cur_action, cur_action->name); @@ -762,7 +763,7 @@ int main(int argc, char **argv) timeout = 0; } - if (!action_queue_empty() || cur_command) + if (!action_queue_empty() || cur_action) timeout = 0; #if BOOTCHART