]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MEDIUM: tasks: Make tasklet_remove_from_tasklet_list() no matter the tasklet.
authorOlivier Houchard <ohouchard@haproxy.com>
Fri, 8 Nov 2019 14:41:55 +0000 (15:41 +0100)
committerOlivier Houchard <cognet@ci0.org>
Sat, 9 Nov 2019 17:27:17 +0000 (18:27 +0100)
commit7031e3daced2169a2ebc5041611a2f05310f130f
treef1df21a3bdc1cdd859a54a5afd8823b3cb738708
parent2f44e8843a553ef0f9c53c9b27899727de097777
BUG/MEDIUM: tasks: Make tasklet_remove_from_tasklet_list() no matter the tasklet.

In tasklet_remove_from_tasket_list(), we can be called for a tasklet that is
either in the private task list, or in the shared tasklet list. Take that into
account and always use MT_LIST_DEL() to remove it, otherwise if we're in the
shared list and another thread attempts to add a tasklet in it, bad things
will happen.

__tasklet_remove_from_tasklet_list() is left unchanged, it's only supposed
to be used by process_runnable_task() to remove task/tasklets from the private
tast list.

This should not be backported.
This should fix github issue #357.
include/proto/task.h