]> git.itanic.dy.fi Git - rrdd/blobdiff - process.c
process: Always kick job scheduler when a worker finishes
[rrdd] / process.c
index 2f5bccdc8a0d16c1c8602acaf2929710591fb2b7..12b77aa69821810137f7eec567d66aaebd9c1527 100644 (file)
--- a/process.c
+++ b/process.c
@@ -134,15 +134,17 @@ out_unlock:
         * ensures next time we start spawning worker threads
         * the first thread will have number zero on its name.
         */
-       if (!workers_active) {
+       if (!workers_active)
                worker_count = 0;
 
-               /*
-                * Kick the job poller, just to print the time of next
-                * update on the logs
-                */
-               notify_job_request();
-       }
+       /*
+        * Kick the job poller. If all jobs were active at this point
+        * the scheduler thread will wait indefinitely until someone
+        * tells it to do something. We may now know when next job is
+        * available, so it is better for the scheduler to recalculate
+        * its sleep time.
+        */
+       notify_job_request();
 
        mutex_unlock(&work_stats_mutex);