LINUX.ORG.RU

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

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

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

Не ожидается, что будут вызваны. Посмотри проблему double-checked locking и зачем там нужны барьеры памяти. Это другой, уже классический, пример того, зачем нужен release после выполнения инициализации конструктором.

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

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

Не ожидается, что будут вызваны. Посмотри проблему double-checked locking и зачем там нужны барьеры памяти. Это другой, уже классический, пример того, зачем нужен release после выполнения конструктора.