Являются ли статические переменные функции потокобезопасными в GCC?

В примере кода

void foo()
{
  static Bar b;
  ...
}

составлено сНКУ это гарантировано, чтоb будет создан и инициализирован потокобезопасным способом?

В gcc 'Страница man s, нашла-fno-поточно-статика опция командной строки:

Не выделяйте дополнительный код для использования подпрограмм, указанных в C ++ ABI, для поточно-ориентированной инициализации локальной статики. Вы можете использовать эту опцию, чтобы немного уменьшить размер кода в коде, который нене должно быть потокобезопасным.

Значит ли это, что локальная статика по умолчанию поддерживает GCC? Так что нет причин ставить явную охрану, например с ?pthread_mutex_lock/unlock

Как написать переносимый код - как проверить, добавит ли компилятор свои средства защиты? Или лучше отключить эту функцию GCC?

Ответы на вопрос(4)

Ваш ответ на вопрос