mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-13 23:14:46 +00:00
BUG/MEDIUM: tasks: Don't forget to increase/decrease tasks_run_queue.
Don't forget to increase tasks_run_queue when we're adding a task to the tasklet list, and to decrease it when we remove a task from a runqueue, or its value won't be accurate, and could lead to tasks not being executed when put in the global run queue. 1.9-dev only, no backport is needed.
This commit is contained in:
parent
1b0f85e47f
commit
09eeb7684d
@ -177,6 +177,7 @@ static inline struct task *task_unlink_wq(struct task *t)
|
||||
*/
|
||||
static inline struct task *__task_unlink_rq(struct task *t)
|
||||
{
|
||||
HA_ATOMIC_SUB(&tasks_run_queue, 1);
|
||||
eb32sc_delete(&t->rq);
|
||||
if (likely(t->nice))
|
||||
HA_ATOMIC_SUB(&niced_tasks, 1);
|
||||
@ -219,6 +220,7 @@ static inline void task_insert_into_tasklet_list(struct task *t)
|
||||
*/
|
||||
if (unlikely(!HA_ATOMIC_CAS(&t->rq.node.leaf_p, &expected, 0x1)))
|
||||
return;
|
||||
HA_ATOMIC_ADD(&tasks_run_queue, 1);
|
||||
task_list_size[tid]++;
|
||||
tl = (struct tasklet *)t;
|
||||
LIST_ADDQ(&task_list[tid], &tl->list);
|
||||
|
Loading…
Reference in New Issue
Block a user