From: Willy Tarreau Date: Mon, 27 Jun 2022 14:20:13 +0000 (+0200) Subject: MINOR: wdt: use ltid_bit in wdt_handler() X-Git-Tag: v2.7-dev2~126 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=adc1f52c9292a3d904da3b4b226af0c89382a712;p=thirdparty%2Fhaproxy.git MINOR: wdt: use ltid_bit in wdt_handler() Since commit cc7a11ee3 ("MINOR: threads: set the tid, ltid and their bit in thread_cfg") we ought not use (1UL << thr) to get the group mask for thread , but (ha_thread_info[thr].ltid_bit). wdt_handler() needs this. --- diff --git a/src/wdt.c b/src/wdt.c index fab1269f09..20297bcb9c 100644 --- a/src/wdt.c +++ b/src/wdt.c @@ -53,6 +53,7 @@ int wdt_ping(int thr) void wdt_handler(int sig, siginfo_t *si, void *arg) { unsigned long long n, p; + ulong thr_bit; int thr; switch (si->si_code) { @@ -71,6 +72,7 @@ void wdt_handler(int sig, siginfo_t *si, void *arg) if (thr < 0 || thr >= global.nbthread) break; + thr_bit = ha_thread_info[thr].ltid_bit; p = ha_thread_ctx[thr].prev_cpu_time; n = now_cpu_time_thread(thr); @@ -81,7 +83,7 @@ void wdt_handler(int sig, siginfo_t *si, void *arg) goto update_and_leave; if ((_HA_ATOMIC_LOAD(&th_ctx->flags) & TH_FL_SLEEPING) && - ((threads_harmless_mask|threads_to_dump) & (1UL << thr))) { + ((threads_harmless_mask|threads_to_dump) & thr_bit)) { /* This thread is currently doing exactly nothing * waiting in the poll loop (unlikely but possible), * waiting for all other threads to join the rendez-vous