From b30a153cd1238b156d558adf42468af362c10b73 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 31 Jan 2020 16:37:34 +0100 Subject: [PATCH] MINOR: task: detect self-wakeups on tl==sched->current instead of TASK_RUNNING This is exactly what we want to detect (a task/tasklet waking itself), so let's use the proper condition for this. --- include/proto/task.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/proto/task.h b/include/proto/task.h index 53119b9d0..68a0a18d1 100644 --- a/include/proto/task.h +++ b/include/proto/task.h @@ -248,7 +248,7 @@ static inline void tasklet_wakeup(struct tasklet *tl) if (tl->state & TASK_SELF_WAKING) { LIST_ADDQ(&task_per_thread[tid].tasklets[TL_BULK], &tl->list); } - else if (tl->state & TASK_RUNNING) { + else if ((struct task *)tl == sched->current) { _HA_ATOMIC_OR(&tl->state, TASK_SELF_WAKING); LIST_ADDQ(&task_per_thread[tid].tasklets[TL_BULK], &tl->list); }