BUG/MEDIUM: threads: properly fix nbthreads == MAX_THREADS
authorWilly Tarreau <w@1wt.eu>
Mon, 30 Jul 2018 08:44:51 +0000 (10:44 +0200)
committerWilly Tarreau <w@1wt.eu>
Mon, 30 Jul 2018 09:10:26 +0000 (11:10 +0200)
While moving Olivier's patch for nbthread==MAX_THREADS in commit
3e12304 ("BUG/MINOR: threads: Handle nbthread == MAX_THREADS.") to
hathreads.c, I missed one place resulting in the computed thread mask
being used as the thread count, which is worse than the initial bug.
Let's fix it properly this time.

This fix must be backported to 1.8 just like the other one.

src/haproxy.c

index a174391..8525593 100644 (file)
@@ -3030,7 +3030,7 @@ int main(int argc, char **argv)
                int          i;
                sigset_t     blocked_sig, old_sig;
 
-               THREAD_SYNC_INIT((1UL << global.nbthread) - 1);
+               THREAD_SYNC_INIT(global.nbthread);
 
                /* Init tids array */
                for (i = 0; i < global.nbthread; i++)