C ++ Thread local storage — одно и то же имя, используемое в разных блоках компиляции

Предположим, у нас есть следующий код в некотором модуле компиляции, который в конечном итоге компилируется в общую библиотеку в Linux (g ++ 4.9)

namespace A {
class B {
static __thread MyObj *myobj;
};
}

Так что это скомпилировано в .so и не экспортирует этот символ (используя видимость скрыто).

Теперь конкретное приложение имеет тот же фрагмент кода, который используется. То есть тот же модуль компиляции cpp связан с этим приложением, которое также имеет доступ к вышеуказанной общей библиотеке.

Вопрос — эти 2 экземпляра myobj находятся в 2 разных адресах в TLS? Я предполагаю, что да, но я вижу проблемы, которые могут быть связаны с вышеуказанной конфигурацией.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]