Это не очень хорошая идея, потому что нет способа обеспечить параллелизм в блоке общей памяти.Точно так же общий ресурс должен быть защищен от множественных потоков, врезавшихся друг в друга (например, с мьютексом или критической секцией), то же самое верно для блока общей памяти.
Без дополнительного механизма сигнализации, использующего что-топодобно именованным каналам, нет никакого способа безопасно сигнализировать, что общий блок памяти
- доступен для чтения
- доступен для записи
- обновлен
Если вы создадите блок памяти с флагом read_write
, он установит правильные разрешения Windows.Пример в расширенной документации показывает это.
using boost::interprocess;
shared_memory_object shm_obj
(open_only //only open
,"shared_memory" //name
,read_write //read-write mode
);