From: Willy Tarreau Date: Fri, 31 Jan 2020 09:39:03 +0000 (+0100) Subject: MINOR: task: make sched->current also reflect tasklets X-Git-Tag: v2.2-dev2~51 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d23d413e3878d164a89175795df7d9134f048211;p=thirdparty%2Fhaproxy.git 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. --- 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);