From: willy tarreau Date: Sat, 22 Apr 2006 13:13:16 +0000 (+0200) Subject: [MINOR] always process the run queue from the head. X-Git-Tag: v1.2.13~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7feab5951897f82a47d807720150b3e006ce0ca1;p=thirdparty%2Fhaproxy.git [MINOR] always process the run queue from the head. This ensures that any task wan wake any other task up and that it will be processed too. --- diff --git a/haproxy.c b/haproxy.c index 1eb714e70b..696b80dc79 100644 --- 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);