From d23d413e3878d164a89175795df7d9134f048211 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 31 Jan 2020 10:39:03 +0100 Subject: [PATCH] MINOR: task: make sched->current also reflect tasklets sched->current is used to know the current task/tasklet, and is currently only used by the panic dump code. However it turns out it was not set for tasklets, which prevents us from using it for more usages, despite the panic handling code already handling this case very well. Let's make sure it's now set. --- src/task.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/task.c b/src/task.c index f1f36a914f..f7bfd893aa 100644 --- a/src/task.c +++ b/src/task.c @@ -339,10 +339,13 @@ static int run_tasks_from_list(struct list *list, int max) ctx = t->context; process = t->process; t->calls++; + sched->current = t; if (TASK_IS_TASKLET(t)) { process(NULL, ctx, state); done++; + sched->current = NULL; + __ha_barrier_store(); continue; } @@ -356,7 +359,6 @@ static int run_tasks_from_list(struct list *list, int max) t->call_date = now_ns; } - sched->current = t; __ha_barrier_store(); if (likely(process == process_stream)) t = process_stream(t, ctx, state); -- 2.47.3