Dll boost::进程间::共享内存\对象::删除失败

Dll boost::进程间::共享内存\对象::删除失败,dll,boost,shared-memory,boost-interprocess,Dll,Boost,Shared Memory,Boost Interprocess,我做了一些测试,并且能够在C++/CLI可执行文件中创建和删除boost::interprocess::shared_memory_对象,没有问题。在C++/CLI dll插件中,我只能创建boost::interprocess::shared_memory_对象,但删除失败。我验证了该文件在删除时存在-它位于名为20110606204418.125000的子文件夹中的boost::interprocess文件夹中。内存没有被任何其他进程映射。你知道原因是什么吗?起初我认为这可能与项目是一个dl

我做了一些测试,并且能够在C++/CLI可执行文件中创建和删除boost::interprocess::shared_memory_对象,没有问题。在C++/CLI dll插件中,我只能创建boost::interprocess::shared_memory_对象,但删除失败。我验证了该文件在删除时存在-它位于名为20110606204418.125000的子文件夹中的boost::interprocess文件夹中。内存没有被任何其他进程映射。你知道原因是什么吗?起初我认为这可能与项目是一个dll和目标CLR有关,但老实说我不知道。
编辑:删除代码由与创建代码不同的线程调用-这是不允许的吗?

在调试期间,我注意到在boost::interprocess::shared_memory_object::remove中要删除的文件路径与boost::interprocess::shared_memory_object构造函数创建的文件不同-要删除的路径指向boost_进程间文件夹的根目录,而实际创建的文件位于boost_进程间/201106204418.125000文件夹中。所以我报告了一个bug来提升。我们将看到他们对此做了什么。

似乎可以在不同的线程中删除,只要您同步操作以避免在同一事物上的其他操作正在进行时删除。您是否有指向错误报告的链接?