Копирование данных thread_local-переменной для новых потоков
Всем привет. Мне потребовалось создать уникальный для разных потоков глобальный контейнер. Обратил внимание на thread_local. Однако существует проблема: мне необходимо, чтобы в новом потоке оставались элементы контейнера, добавленные в main потоке, а с thread_local я получаю пустой контейнер в новом потоке. Как мне сохранить данные из main потока для нового потока, чтобы дальше он мог с ними работать?
Приведу пример с глобальной переменной.
Имеем глобальную переменную thread_local int i = 0;
, далее в main потоке сделали, к примеру, i = 5;
Затем создали новый поток. Мне необходимо, чтобы в этом новом потоке i == 5
,
а не i == 0
.
При этом, ни изменения этой переменной из main, ни из нового потока не должны влиять друг на друга (что и обеспечит thread_local)