Size: a a a

2021 February 20

D

Dmitriy in pro.cxx
Где-нибудь описана (возможная) внутренняя реализация методов, с помощью которых компиляторами обеспечивается потокобезопасность инициализации статических объектов?
В частности - MSVC интересует
источник

BU

Boris Usievich in pro.cxx
Dmitriy
Где-нибудь описана (возможная) внутренняя реализация методов, с помощью которых компиляторами обеспечивается потокобезопасность инициализации статических объектов?
В частности - MSVC интересует
в исходниках RTL?
источник

IZ

Ilia Zviagin in pro.cxx
Boris Usievich
в исходниках RTL?
Нет, это код генерируемый компилятором... RTL  тут ни при чём
источник

D

Dmitriy in pro.cxx
Ilia Zviagin
Нет, это код генерируемый компилятором... RTL  тут ни при чём
Не совсем так. Там действительно используются функции из CRT
источник

D

Dmitriy in pro.cxx
Но часть из них я пока не нашёл...
источник

AS

Anatoly Shirokov in pro.cxx
Dmitriy
Где-нибудь описана (возможная) внутренняя реализация методов, с помощью которых компиляторами обеспечивается потокобезопасность инициализации статических объектов?
В частности - MSVC интересует
здесь https://en.cppreference.com/w/cpp/language/storage_duration#Static_local_variables , все используют std::call_once
источник

J

JkImper in pro.cxx
Dmitriy
Где-нибудь описана (возможная) внутренняя реализация методов, с помощью которых компиляторами обеспечивается потокобезопасность инициализации статических объектов?
В частности - MSVC интересует
Всегда просто call_once использую
источник

AD

Andrey Davydov in pro.cxx
Dmitriy
Где-нибудь описана (возможная) внутренняя реализация методов, с помощью которых компиляторами обеспечивается потокобезопасность инициализации статических объектов?
В частности - MSVC интересует
источник

D

Dmitriy in pro.cxx
JkImper
Всегда просто call_once использую
Из вопроса может быть неясно - так что уточню: call_once использовать не могу)
источник

D

Dmitriy in pro.cxx
Это к чему?
источник

АК

Александр Караев... in pro.cxx
Dmitriy
Где-нибудь описана (возможная) внутренняя реализация методов, с помощью которых компиляторами обеспечивается потокобезопасность инициализации статических объектов?
В частности - MSVC интересует
Потокобезопасность обеспечивается любым аналогом std::call_once - через атомарный флажок/мьютекс (или скорее два - https://en.wikipedia.org/wiki/Double-checked_locking) или любой другой примитив синхронизации. Никакой магии там нет
источник

AD

Andrey Davydov in pro.cxx
Dmitriy
Это к чему?
К вашему вопросу.
источник

D

Dmitriy in pro.cxx
Andrey Davydov
К вашему вопросу.
Какое отношение флажок компилятора к нему имеет?)
источник

D

Dmitriy in pro.cxx
Изначально же написал: речь о реализации, а не "помогите нажать кнопку"
источник

D

Dmitriy in pro.cxx
Александр Караев
Потокобезопасность обеспечивается любым аналогом std::call_once - через атомарный флажок/мьютекс (или скорее два - https://en.wikipedia.org/wiki/Double-checked_locking) или любой другой примитив синхронизации. Никакой магии там нет
Да, согласен. Спасибо!
источник

AD

Andrey Davydov in pro.cxx
Dmitriy
Какое отношение флажок компилятора к нему имеет?)
"Thread-safe static local variables use thread-local storage (TLS) internally to provide efficient execution when the static has already been initialized..." и далее по тексту вам не интересно?
источник

AD

Andrey Davydov in pro.cxx
У них не совсем классический DCLP, в удачном случае им даже не нужно читать атомик.
источник

D

Dmitriy in pro.cxx
Andrey Davydov
"Thread-safe static local variables use thread-local storage (TLS) internally to provide efficient execution when the static has already been initialized..." и далее по тексту вам не интересно?
Суть всего, что увидел далее: The implementation of this feature relies on Windows operating system support functions in Windows Vista and later operating systems
источник

AD

Andrey Davydov in pro.cxx
Dmitriy
Суть всего, что увидел далее: The implementation of this feature relies on Windows operating system support functions in Windows Vista and later operating systems
Потому что для TLS нужна поддержка со стороны OS (dynamic linker), не?
источник

AP

Antony Polukhin in pro.cxx
Ура, C++ теперь не только на орбите земли (SpaceX), но и на Марсе https://www.opennet.ru/opennews/art.shtml?num=54623
источник