]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: tasks: Provide the tasklet to the callback.
authorOlivier Houchard <cognet@ci0.org>
Tue, 17 Mar 2020 17:15:04 +0000 (18:15 +0100)
committerOlivier Houchard <cognet@ci0.org>
Tue, 17 Mar 2020 17:52:33 +0000 (18:52 +0100)
When tasklet were introduced, it has been decided not to provide the tasklet
to the callback, but NULL instead. While it may have been reasonable back
then, maybe to be able to differentiate a task from a tasklet from the
callback, it also means that we can't access the tasklet from the handler if
the context provided can't be trusted.
As no handler is shared between a task and a tasklet, and there are now
other means of distinguishing between task and tasklet, just pass the
tasklet pointer too.

This may be backported to 2.1, 2.0 and 1.9 if needed.

src/task.c

index 2952d2ad393de2828b834563050b82d7295d9ecc..e6be24026c9a714240c0f66a224b784c0969f454 100644 (file)
@@ -342,7 +342,7 @@ int run_tasks_from_list(struct list *list, int max)
                        state = _HA_ATOMIC_XCHG(&t->state, state);
                        __ha_barrier_atomic_store();
                        __tasklet_remove_from_tasklet_list((struct tasklet *)t);
-                       process(NULL, ctx, state);
+                       process(t, ctx, state);
                        done++;
                        sched->current = NULL;
                        __ha_barrier_store();