取消映射提升共享内存

时间:2015-03-09 08:15:53

标签: c++ boost ipc shared-memory

我有一个代码,其中一个编写器和许多读者使用了boost共享内存。

编写器创建共享内存,使用写入权限打开它,并不时向其写入数据。

读者来来去去,每个读者都以read_only权限映射到共享内存,执行它所做的事情而不是调用remove。

问题似乎是当读者完成任何正在做的事情时。它调用remove,但是,删除删除了新读者的shared_memory文件,他们无法映射到它。

我的问题是,一个进程如何从共享内存中分离出来而不删除它?升级库中似乎没有分离功能。

1 个答案:

答案 0 :(得分:0)

您应该可以使用共享引用计数。

共享指针或信号量来实现此目的。

对于Boost Interprocess,关闭删除映射/共享对象。只是不要打电话删除。