1

我正在开发几个多线程进程试图获取通过 boost::interprocess (named_mutex 上的 scoped_lock) 管理的共享内存文件的锁的应用程序。

看起来,如果其中一个进程在持有共享内存文件的锁的同时转储了一个核心,那么所有其他进程最终都会等待这个锁被释放。

关于如何克服这个问题的任何想法?我想确保当持有锁的进程死亡时,它应该确保锁被释放。

我看到的一个问题是我没有调用 named_mutex 对象的析构函数。这可能是这个问题的原因吗?进程核心转储时是否保证调用析构函数?

谢谢!

4

0 回答 0