From: Olivier Houchard Date: Thu, 26 Jul 2018 12:57:49 +0000 (+0200) Subject: BUG/MEDIUM: tasks: Decrement rqueue_size at the right time. X-Git-Tag: v1.9-dev1~33 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e85ee7b66326d146931ffbb99700bef2de411a36;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: tasks: Decrement rqueue_size at the right time. We need to decrement requeue_size when we remove a task form rqueue_local, not when we remove if from the task list, or we'd also decrement it for any tasklet, that was never in the rqueue in the first place. --- diff --git a/src/task.c b/src/task.c index 86833cf80f..edb528a102 100644 --- a/src/task.c +++ b/src/task.c @@ -333,6 +333,7 @@ void process_runnable_tasks() /* detach the task from the queue */ __task_unlink_rq(t); + rqueue_size[tid]--; /* And add it to the local task list */ task_insert_into_tasklet_list(t); } @@ -349,7 +350,6 @@ void process_runnable_tasks() ctx = t->context; process = t->process; - rqueue_size[tid]--; t->calls++; curr_task = (struct task *)t; if (likely(process == process_stream))