BUG/MEDIUM: threads: Ignore current thread to end its harmless period
authorChristopher Faulet <cfaulet@haproxy.com>
Wed, 14 Apr 2021 12:02:25 +0000 (14:02 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Thu, 29 Apr 2021 09:07:30 +0000 (11:07 +0200)
commit6956b15da0412d44b84a5c73b1f91ac51dd611f8
tree56e286120f0341bc66942ce75efde0f8b3044b76
parent1fc55afad6899d1c723e60003826b38d993943cd
BUG/MEDIUM: threads: Ignore current thread to end its harmless period

A previous patch was pushed to fix a deadlock when an isolated thread ends
its harmless period (a9a9e9aac ["BUG/MEDIUM: thread: Fix a deadlock if an
isolated thread is marked as harmless"]). But, unfortunately, the fix is
incomplete. The same must be done in the outer loop, in
thread_harmless_end() function. The current thread must be ignored when
threads_want_rdv_mask mask is tested.

This patch must also be backported as far as 2.0.

(cherry picked from commit f63a18550073e821976606f9602c261976939ae9)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit a3259cb81e3960e5e45fe03a890a094002f3e283)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 741fbe493d5bc64d7c609a50864d7f073f8e0f05)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
include/common/hathreads.h