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
diff --git a/init/init.c b/init/init.c
index 4f4059b..8f95da7 100755
--- a/init/init.c
+++ b/init/init.c
@@ -492,6 +492,7 @@
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 @@
timeout = 0;
}
- if (!action_queue_empty() || cur_command)
+ if (!action_queue_empty() || cur_action)
timeout = 0;
#if BOOTCHART