Как отмечалось в в этой публикации группы новостей , существует несколько причин, по которым использование alloca
можно считать трудным и опасным:
alloca
. alloca
, поэтому переносимость не гарантируется даже между компиляторами, которые его поддерживают. Нет, это не потокобезопасно, потому что статический локальный компьютер никоим образом не защищен. По умолчанию статический локальный не является потокобезопасным. Это означает, что вы можете столкнуться со следующими проблемами
Вот подробная запись в блоге Раймонда Чена о том, почему статика C ++ не является потокобезопасной по умолчанию.
Это не потокобезопасно, если вы не настроите свой компилятор для генерации потоковобезопасного кода для статического доступа.
Однако лучше, чтобы код был самодостаточным, поэтому я бы добавил здесь мьютекс и там.