From b401cd23ff43a4afdcb3fad85f8c642680a82e95 Mon Sep 17 00:00:00 2001 From: default Date: Mon, 8 Jan 2024 08:38:25 +0100 Subject: Added some state flags for threads. --- httpd.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'httpd.c') diff --git a/httpd.c b/httpd.c index 30cdca1..08a1b44 100644 --- a/httpd.c +++ b/httpd.c @@ -506,9 +506,9 @@ static void *job_thread(void *arg) for (;;) { xs *job = NULL; - job_wait(&job); + p_state->th_state[pid] = THST_WAIT; - srv_debug(2, xs_fmt("job thread %d wake up", pid)); + job_wait(&job); if (job == NULL) /* corrupted message? */ continue; @@ -520,6 +520,8 @@ static void *job_thread(void *arg) /* it's a socket */ FILE *f = NULL; + p_state->th_state[pid] = THST_IN; + xs_data_get(&f, job); if (f != NULL) @@ -527,10 +529,14 @@ static void *job_thread(void *arg) } else { /* it's a q_item */ + p_state->th_state[pid] = THST_OUT; + process_queue_item(job); } } + p_state->th_state[pid] = THST_STOP; + srv_debug(1, xs_fmt("job thread %d stopped", pid)); return NULL; @@ -556,6 +562,8 @@ static void *background_thread(void *arg) time_t t; int cnt = 0; + p_state->th_state[0] = THST_IN; + { xs *list = user_list(); char *p, *uid; @@ -588,6 +596,8 @@ static void *background_thread(void *arg) if (cnt == 0) { /* sleep 3 seconds */ + p_state->th_state[0] = THST_WAIT; + #ifdef USE_POLL_FOR_SLEEP poll(NULL, 0, 3 * 1000); #else @@ -603,6 +613,8 @@ static void *background_thread(void *arg) } } + p_state->th_state[0] = THST_STOP; + srv_log(xs_fmt("background thread stopped")); return NULL; -- cgit v1.2.3