).
у обмениваться данными между потоками и автоматически удалять их, когда последний пользователь завершил работу с ними. Кажется, это работает, в большинстве случаев, используяboost::interprocess::shared_ptr
вboost::fixed_managed_shared_memory
сегмент: но не всегда.
Итак, этоboost::interprocess::shared_ptr
поток (и межпроцессный) -безопасен?
Если я использую свою общую память по фиксированному адресу (я почти уверен, что в моем 64-битном (ну, 48-битном) адресном пространстве все будет в порядке), можно ли использовать обычныйboost::shared_ptr
(которые являются потокобезопасными) вместо этого?
некоторые уточнения:
Тип указателя, который я использую, простvoid*
, (моя общая память сопоставлена с фиксированным адресом).
Вопрос о безопасности потоков связан с подсчетом ссылок, то есть разрешено ли копирование / уничтожение общих указателей на одну и ту же вещь в разных процессах одновременно.Не доступ к одному и тому же общему указателю в разных потоках ине доступ к pointee.