summaryrefslogtreecommitdiffstats
path: root/init/init.cpp
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2015-04-25 01:20:29 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-04-25 01:20:29 +0000
commitd503cc21ec663b39e8d84feb373d3a287bb02d63 (patch)
tree287f1a9d3fc833a4fcb10cd8ab6d3d29902f6c4d /init/init.cpp
parentbdf133de65a1fbb2d5e91fcd854d9824bcff4ea1 (diff)
parentb749be0bc36b3ae610aa05541581ef8cc5e484ee (diff)
downloadsystem_core-d503cc21ec663b39e8d84feb373d3a287bb02d63.zip
system_core-d503cc21ec663b39e8d84feb373d3a287bb02d63.tar.gz
system_core-d503cc21ec663b39e8d84feb373d3a287bb02d63.tar.bz2
am b749be0b: Merge "Clean up init signal handling a little."
* commit 'b749be0bc36b3ae610aa05541581ef8cc5e484ee': Clean up init signal handling a little.
Diffstat (limited to 'init/init.cpp')
-rw-r--r--init/init.cpp24
1 files changed, 3 insertions, 21 deletions
diff --git a/init/init.cpp b/init/init.cpp
index da35a9d..dccd6a2 100644
--- a/init/init.cpp
+++ b/init/init.cpp
@@ -848,16 +848,6 @@ static int property_service_init_action(int nargs, char **args)
return 0;
}
-static int signal_init_action(int nargs, char **args)
-{
- signal_init();
- if (get_signal_fd() < 0) {
- ERROR("signal_init() failed\n");
- exit(1);
- }
- return 0;
-}
-
static int queue_property_triggers_action(int nargs, char **args)
{
queue_all_property_triggers();
@@ -1061,13 +1051,12 @@ int main(int argc, char** argv) {
restorecon("/dev/__properties__");
restorecon_recursive("/sys");
+ signal_init();
+
property_load_boot_defaults();
init_parse_config_file("/init.rc");
- // Setup signal handler before any exec command or we'll deadlock
- queue_builtin_action(signal_init_action, "signal_init");
-
action_for_each_trigger("early-init", action_add_queue_tail);
queue_builtin_action(wait_for_coldboot_done_action, "wait_for_coldboot_done");
@@ -1097,8 +1086,8 @@ int main(int argc, char** argv) {
// TODO: why do we only initialize ufds after execute_one_command and restart_processes?
size_t fd_count = 0;
struct pollfd ufds[3];
+ ufds[fd_count++] = { .fd = get_signal_fd(), .events = POLLIN, .revents = 0 };
bool property_set_fd_init = false;
- bool signal_fd_init = false;
bool keychord_fd_init = false;
for (;;) {
@@ -1114,13 +1103,6 @@ int main(int argc, char** argv) {
fd_count++;
property_set_fd_init = true;
}
- if (!signal_fd_init && get_signal_fd() > 0) {
- ufds[fd_count].fd = get_signal_fd();
- ufds[fd_count].events = POLLIN;
- ufds[fd_count].revents = 0;
- fd_count++;
- signal_fd_init = true;
- }
if (!keychord_fd_init && get_keychord_fd() > 0) {
ufds[fd_count].fd = get_keychord_fd();
ufds[fd_count].events = POLLIN;