mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-01-18 03:30:43 +00:00
8cdc167df8
Tasklets may be woken up to run on the calling thread or by a specific thread (the owner). But since we use a non-thread safe mechanism when the calling thread is also the for the owner, there may sometimes be collisions when two threads decide to wake the same tasklet up at the same time and one of them is the owner. This is more of a matter of usage than code, in that a tasklet usually is designed to be woken up and executed on the calling thread only (most cases) or on a specific thread. Thus it is a property of the tasklet itself as this solely depends how the code is constructed around it. This patch performs a small change to address this. By default tasklet_new() creates a "local" tasklet, which will run on the calling thread, like in 2.0. This is done by setting tl->tid to a negative value. If the caller wants the tasklet to run exclusively on a specific thread, it just has to set tl->tid, which is already what shared tasklet callers do anyway. No backport is needed. |
||
---|---|---|
.. | ||
common | ||
import | ||
proto | ||
types |