From cc7a11ee3b0d7663be874d1f3177ea8c54c3a5be Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Tue, 28 Sep 2021 08:53:11 +0200 Subject: [PATCH] MINOR: threads: set the tid, ltid and their bit in thread_cfg This will be a convenient way to communicate the thread ID and its local ID in the group, as well as their respective bits when creating the threads or when only a pointer is given. --- include/haproxy/tinfo-t.h | 2 ++ src/thread.c | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/include/haproxy/tinfo-t.h b/include/haproxy/tinfo-t.h index ba24249755..dde3fe9b8e 100644 --- a/include/haproxy/tinfo-t.h +++ b/include/haproxy/tinfo-t.h @@ -60,6 +60,8 @@ struct tgroup_info { */ struct thread_info { const struct tgroup_info *tg; /* config of the thread-group this thread belongs to */ + uint tid, ltid; /* process-wide and group-wide thread ID (start at 0) */ + ulong tid_bit, ltid_bit; /* bit masks for the tid/ltid */ /* pad to cache line (64B) */ char __pad[0]; /* unused except to check remaining room */ diff --git a/src/thread.c b/src/thread.c index 0b979f9120..2f904deae4 100644 --- a/src/thread.c +++ b/src/thread.c @@ -1075,6 +1075,14 @@ int thread_map_to_groups() return -1; } + for (t = 0; t < global.nbthread; t++) { + ha_thread_info[t].tid = t; + ha_thread_info[t].ltid = t - ha_thread_info[t].tg->base; + + ha_thread_info[t].tid_bit = 1UL << ha_thread_info[t].tid; + ha_thread_info[t].ltid_bit = 1UL << ha_thread_info[t].ltid; + } + return 0; } -- 2.39.5