From b400d28e853eea66d6f233a3524009dea01d9e41 Mon Sep 17 00:00:00 2001 From: Florian Forster Date: Fri, 12 Oct 2007 22:59:15 +0200 Subject: [PATCH] rrdtool plugin: Wait for the ``queue thread'' to exit _after_ signaling it to exit.. --- src/rrdtool.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/rrdtool.c b/src/rrdtool.c index 36885817..d274ba02 100644 --- a/src/rrdtool.c +++ b/src/rrdtool.c @@ -1053,6 +1053,11 @@ static int rrd_shutdown (void) rrd_cache_flush (-1); pthread_mutex_unlock (&cache_lock); + pthread_mutex_lock (&queue_lock); + do_shutdown = 1; + pthread_cond_signal (&queue_cond); + pthread_mutex_unlock (&queue_lock); + /* Wait for all the values to be written to disk before returning. */ if (queue_thread != 0) { @@ -1061,11 +1066,6 @@ static int rrd_shutdown (void) DEBUG ("rrdtool plugin: queue_thread exited."); } - pthread_mutex_lock (&queue_lock); - do_shutdown = 1; - pthread_cond_signal (&queue_cond); - pthread_mutex_unlock (&queue_lock); - return (0); } /* int rrd_shutdown */ -- 2.30.2