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.
*/
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 */
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;
}