MINOR: tasks: Provide the tasklet to the callback.

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.
This commit is contained in:
Olivier Houchard 2020-03-17 18:15:04 +01:00
parent 909086ea61
commit c62d9ab7cb

View 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();