Если у меня есть переменная с классом хранения thread_local
с динамическим инициализатором c, она, вероятно, инициализируется несколько раз: один раз, по крайней мере, для каждого потока, в котором она используется.
Происходит ли эта инициализация в контексте вновь созданного потока, или возможно, что это происходит в другом потоке?
В частности, будет работать любая из следующих операций:
thread_local int tid1 = pthread_self();
thread_local int tid2 = syscall(SYS_gettid);
... в смысле tid1
и tid2
получают правильный идентификатор для текущего потока.