История изменений
Исправление
dzidzitop,
(текущая версия)
:
Про способ - см пример выше. Есть плеер deadbeef, который как-то создаёт свои потоки, есть мой плагин, который инициализируется самостоятельно. Потоки плеера используют данные из моего плагина. Поскольку процесс я не контролирую, то лок в конструкторе будет гарантировать в моём случае, что после захвата того же лока в потоке плеера я увижу корректно проинициализированный объект.
Не ожидается, что будут вызваны. Посмотри проблему double-checked locking и зачем там нужны барьеры памяти. Это другой, уже классический, пример того, зачем нужен release после выполнения инициализации конструктором.
Исходная версия
dzidzitop,
:
Про способ - см пример выше. Есть плеер deadbeef, который как-то создаёт свои потоки, есть мой плагин, который инициализируется самостоятельно. Потоки плеера используют данные из моего плагина. Поскольку процесс я не контролирую, то лок в конструкторе будет гарантировать в моём случае, что после захвата того же лока в потоке плеера я увижу корректно проинициализированный объект.
Не ожидается, что будут вызваны. Посмотри проблему double-checked locking и зачем там нужны барьеры памяти. Это другой, уже классический, пример того, зачем нужен release после выполнения конструктора.