MINOR: threads: avoid clearing harmless twice in thread_release()

thread_release() is to be called after thread_isolate(), i.e. when the
thread already has its harmless bit cleared. No need to clear it twice,
thus avoid calling thread_harmless_end() and directly check the rdv
bits then loop on them.
This commit is contained in:
Willy Tarreau 2019-06-09 08:44:19 +02:00
parent 19a2e2d91e
commit 31cba0d3e0

View file

@ -94,7 +94,12 @@ void thread_isolate()
void thread_release()
{
_HA_ATOMIC_AND(&threads_want_rdv_mask, ~tid_bit);
thread_harmless_end();
while (threads_want_rdv_mask & all_threads_mask) {
_HA_ATOMIC_OR(&threads_harmless_mask, tid_bit);
while (threads_want_rdv_mask & all_threads_mask)
ha_thread_relax();
HA_ATOMIC_AND(&threads_harmless_mask, ~tid_bit);
}
}
/* send signal <sig> to thread <thr> */