Допустим, у меня есть следующее объявление:
thread_local std::atomic<void*> local_var;
Есть модификации local_var
из других тем разрешено? То есть, если я сообщу адрес local_var
в другой поток, не изменяет local_var
оттуда вызывать носовых демонов?
Да, разрешено изменять локальные переменные потока другого потока.
Какие thread_local
означает, что для переменной является то, что название ссылается на отдельный объект в каждом потоке, но это не означает, что объект является частным для своего потока. Если вы сделаете переменную известной как-то иначе, чем по ее имени, то есть по ее адресу, другие потоки смогут получить к ней доступ.
Других решений пока нет …