BUG/MINOR: haproxy: don't wake already stopping threads on exit

Commit d645574 ("MINOR: soft-stop: let the first stopper only signal
other threads") introduced a minor mistake which is that when a stopping
thread signals all other threads, it also signals itself. When
single-threaded, the process constantly wakes up while waiting for
last connections to exit. Let's reintroduce the lost mask to avoid
this.

No backport is needed, this is 2.2-dev only.
This commit is contained in:
Willy Tarreau 2020-06-29 19:23:19 +02:00
parent d59946e673
commit 369a2efc27

View File

@ -2926,7 +2926,7 @@ void run_poll_loop()
if (_HA_ATOMIC_OR(&stopping_thread_mask, tid_bit) == tid_bit) {
/* notify all threads that stopping was just set */
for (i = 0; i < global.nbthread; i++)
if ((all_threads_mask >> i) & 1)
if (((all_threads_mask & ~stopping_thread_mask) >> i) & 1)
wake_thread(i);
}
}