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.
diff --git a/include/haproxy/tinfo-t.h b/include/haproxy/tinfo-t.h
index ba24249..dde3fe9 100644
--- a/include/haproxy/tinfo-t.h
+++ b/include/haproxy/tinfo-t.h
@@ -60,6 +60,8 @@
*/
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 0b979f9..2f904de 100644
--- a/src/thread.c
+++ b/src/thread.c
@@ -1075,6 +1075,14 @@
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;
}