mirror of
http://git.haproxy.org/git/haproxy.git
synced 2026-02-10 13:53:15 +02:00
CLEANUP: thread: also remove a thread's bit from stopping_threads on stop
As much as possible we should take care of not leaving bits from stopped threads in shared thread masks. It can avoid issues like the previous fix and will also make debugging less confusing.
This commit is contained in:
@@ -2988,6 +2988,8 @@ static void *run_thread_poll_loop(void *data)
|
||||
#ifdef USE_THREAD
|
||||
if (!_HA_ATOMIC_AND_FETCH(&ha_tgroup_info[ti->tgid-1].threads_enabled, ~ti->ltid_bit))
|
||||
_HA_ATOMIC_AND(&all_tgroups_mask, ~tg->tgid_bit);
|
||||
if (!_HA_ATOMIC_AND_FETCH(&tg_ctx->stopping_threads, ~ti->ltid_bit))
|
||||
_HA_ATOMIC_AND(&stopping_tgroup_mask, ~tg->tgid_bit);
|
||||
_HA_ATOMIC_AND(&all_threads_mask, ~tid_bit);
|
||||
if (tid > 0)
|
||||
pthread_exit(NULL);
|
||||
|
||||
Reference in New Issue
Block a user