]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
[MINOR] always process the run queue from the head.
authorwilly tarreau <willy@wtap.(none)>
Sat, 22 Apr 2006 13:13:16 +0000 (15:13 +0200)
committerwilly tarreau <willy@wtap.(none)>
Sat, 22 Apr 2006 13:13:16 +0000 (15:13 +0200)
This ensures that any task wan wake any other task up and that it will be
processed too.

haproxy.c

index 1eb714e70b352248f81dc3508bad99c4c85be8c5..696b80dc795404bd3fa7f7c76122037464495d66 100644 (file)
--- a/haproxy.c
+++ b/haproxy.c
@@ -5616,13 +5616,13 @@ int process_runnable_tasks() {
   }
 
   /* process each task in the run queue now. Each task may be deleted
-   * since we only use tnext.
+   * since we only use the run queue's head. Note that any task can be
+   * woken up by any other task and it will be processed immediately
+   * after as it will be queued on the run queue's head.
    */
-  tnext = rq;
-  while ((t = tnext) != NULL) {
+  while ((t = rq) != NULL) {
       int temp_time;
-      
-      tnext = t->rqnext;
+
       task_sleep(&rq, t);
       temp_time = t->process(t);
       next_time = MINTIME(temp_time, next_time);