Code

rrdcached: move queue length decrement into remove_from_queue
authoroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Sat, 8 Nov 2008 22:57:38 +0000 (22:57 +0000)
committeroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Sat, 8 Nov 2008 22:57:38 +0000 (22:57 +0000)
-- kevin

git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1661 a5681a0c-68f1-0310-ab6d-d61299d08faa

program/src/rrd_daemon.c

index d56cf06da51ddde4126d302557b9a3915f257244..97eed320a04a5008fcf880e6e5c7d142e0932da5 100644 (file)
@@ -587,6 +587,12 @@ static void remove_from_queue(cache_item_t *ci) /* {{{ */
 
   ci->next = ci->prev = NULL;
   ci->flags &= ~CI_FLAGS_IN_QUEUE;
+
+  pthread_mutex_lock (&stats_lock);
+  assert (stats_queue_length > 0);
+  stats_queue_length--;
+  pthread_mutex_unlock (&stats_lock);
+
 } /* }}} static void remove_from_queue */
 
 /* free the resources associated with the cache_item_t
@@ -846,11 +852,6 @@ static void *queue_thread_main (void *args __attribute__((unused))) /* {{{ */
     wipe_ci_values(ci, time(NULL));
     remove_from_queue(ci);
 
-    pthread_mutex_lock (&stats_lock);
-    assert (stats_queue_length > 0);
-    stats_queue_length--;
-    pthread_mutex_unlock (&stats_lock);
-
     pthread_mutex_unlock (&cache_lock);
 
     rrd_clear_error ();