statsd plugin: Fix deadlock on plugin shutdown (Issue #1703)
authorPavel Rochnyack <pavel2000@ngs.ru>
Mon, 9 May 2016 09:15:26 +0000 (15:15 +0600)
committerMarc Fournier <marc.fournier@camptocamp.com>
Tue, 10 May 2016 05:37:36 +0000 (07:37 +0200)
src/statsd.c

index 7336d37..ba8901b 100644 (file)
@@ -936,8 +936,6 @@ static int statsd_shutdown (void) /* {{{ */
   void *key;
   void *value;
 
-  pthread_mutex_lock (&metrics_lock);
-
   if (network_thread_running)
   {
     network_thread_shutdown = 1;
@@ -946,6 +944,8 @@ static int statsd_shutdown (void) /* {{{ */
   }
   network_thread_running = 0;
 
+  pthread_mutex_lock (&metrics_lock);
+
   while (c_avl_pick (metrics_tree, &key, &value) == 0)
   {
     sfree (key);