snac2

Fork of https://codeberg.org/grunfink/snac2
git clone https://git.inz.fi/snac2
Log | Files | Refs | README | LICENSE

commit 8635c5df9049dbeba39f4b22a3397c623d5f8304
parent 45f0988fb390f20356e6cc03d7303367122fc465
Author: default <nobody@localhost>
Date:   Thu, 13 Oct 2022 15:56:19 +0200

The waiting of the queue thread is done in a more appropriate way.

Diffstat:
Mhttpd.c | 12+++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/httpd.c b/httpd.c @@ -200,6 +200,9 @@ void term_handler(int s) static void *queue_thread(void *arg) /* queue thread (queue management) */ { + pthread_mutex_t dummy_mutex = PTHREAD_MUTEX_INITIALIZER; + pthread_cond_t dummy_cond = PTHREAD_COND_INITIALIZER; + srv_log(xs_fmt("queue thread start")); while (srv_running) { @@ -216,7 +219,14 @@ static void *queue_thread(void *arg) } } - sleep(3); + /* sleep 3 seconds */ + struct timespec ts; + clock_gettime(CLOCK_REALTIME, &ts); + ts.tv_sec += 3; + + pthread_mutex_lock(&dummy_mutex); + while (pthread_cond_timedwait(&dummy_cond, &dummy_mutex, &ts) == 0); + pthread_mutex_unlock(&dummy_mutex); } srv_log(xs_fmt("queue thread stop"));