LINUX.ORG.RU

История изменений

Исправление AndreyKl, (текущая версия) :

И да - если ты тоже считаешь (знаешь) что в плюсах с точки зрения многопоточности какая-то особая семантика, отличающаяся от вызова обычной функции, то потрудись, пожалуйста показать цитатку из стандарта.

Ещё раз кракто:

1) нет святой роли конструктора в многопоточности

2) но есть святая роль конструктора в инициализации

3) из чего следует что первичность инициализации нужно обеспечивать внешними средствами в многопоточном коде

4) я тебе привёл пример кода который показывает что в мьютексе (даже правильно работающем) смысла нет в конструкции которую ты считаешь правильной. Ты же продолжаешь упираться, не умея то ли читать, то ли признавать свои ошибки.

5) я _полагаю_, ты перепутал 1) и 2) и поэтому тебе кажется что тебя убеждают в святой роли конструктора в многопоточности.

---------

более подробно

Ты никак не можешь понять, никто не считает что конструктор чем то выделяется с т.з. многопоточности. Наоборот, он не выделяется. Но необходимо обеспечить вызов конструктора _до_ любого обращения к любому члену/методу создаваемого объекта.

А раз у конструктора нет никакого выделенного поведения относительно многопоточности, то единственный способ обеспечить такую очерёдность - это использование внешней синхронизации.

Я тебя ещё раз прошу привести пример кода в котором мьютекс (в том виде в котором ты его используешь/хочешь использвать) решал бы проблему, а отсутсвие мьютекса - вскрывало бы проблему.

И/или обрати внимание всё таки на мой код - там внешний заведомо рабочий мьюекс и всё равно UB при попытке подобной синхронизации.

Исходная версия AndreyKl, :

И да - если ты тоже считаешь (знаешь) что в плюсах с точки зрения многопоточности какая-то особая семантика, отличающаяся от вызова обычной функции, то потрудись, пожалуйста показать цитатку из стандарта.

ты никак не можешь понять, никто не считает что конструктор чем то выделяется с т.з. многопоточности. Наоборот, он не выделяется. Но необходимо обеспечить вызов конструктора _до_ любого обращения к любому члену/методу создаваемого объекта.

А раз у конструктора нет никакого выделенного поведения относительно многопоточности, то единственный способ обеспечить такую очерёдность - это использование внешней синхронизации.

Я тебя ещё раз прошу привести пример кода в котором мьютекс (в том виде в котором ты его используешь/хочешь использвать) решал бы проблему, а отсутсвие мьютекса - вскрывало бы проблему.

И обрати внимание всё таки на мой код - там внешний заведомо рабочий мьюекс и всё равно UB при попытке подобной синхронизации.