Проблема заключается в том, что ссылка на непроиницилизированный объект может появиться раньше, чем объект сконструируется, не в том, что второй тред увидит эту ссылку до момента выхода из синхронизированного блока
Можно и так сказать.
А memory barrier между инициализацией и присвоением shared variable гарантирует, что подобной гадости не произойдет.
Да, если мы умеем вставлять memory barrier в произвольном месте кода, это решает проблему. К сожалению, никакой стандарт не предусматривает такой операции.
no subject
Можно и так сказать.
А memory barrier между инициализацией и присвоением shared variable гарантирует, что подобной гадости не произойдет.
Да, если мы умеем вставлять memory barrier в произвольном месте кода, это решает проблему. К сожалению, никакой стандарт не предусматривает такой операции.