aboutsummaryrefslogtreecommitdiff
path: root/initd/config.c
diff options
context:
space:
mode:
authorDavid Oberhollenzer <goliath@infraroot.at>2020-05-14 16:31:49 +0200
committerDavid Oberhollenzer <goliath@infraroot.at>2020-05-14 18:12:03 +0200
commit5b5fc677b313908b8d1a775cd6af08202841d908 (patch)
treecfd217112b9aff0099802b61e9c5641b60979b70 /initd/config.c
parent79bb09eac54d91bf76268baa50ecebea1ab19708 (diff)
Move handling of dead children back to SIGCHLD handler
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
Diffstat (limited to 'initd/config.c')
-rw-r--r--initd/config.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/initd/config.c b/initd/config.c
index fa12ab2..3a4eac2 100644
--- a/initd/config.c
+++ b/initd/config.c
@@ -69,18 +69,6 @@ void config_set_waiting(svc_run_data_t *rt)
waiting = rt;
}
-bool config_is_waiting(void)
-{
- if (waiting != NULL) {
- if (waiting->state == STATE_RUNNING)
- return true;
-
- waiting = NULL;
- }
-
- return false;
-}
-
svc_run_data_t *config_rt_data_by_pid(pid_t pid)
{
size_t i;
@@ -98,8 +86,12 @@ svc_run_data_t *config_rt_data_by_pid(pid_t pid)
svc_run_data_t *config_dequeue(void)
{
- if (config_is_waiting())
- return NULL;
+ if (waiting != NULL) {
+ if (waiting->state == STATE_RUNNING)
+ return NULL;
+
+ waiting = NULL;
+ }
if (queue_idx >= queue_count[target])
return NULL;