我正在开发应用程序,其中多个多线程进程试图获取对通过boost :: interprocess(named_mutex上的scoped_lock)管理的共享内存文件的锁定。
看来,如果其中一个进程在对共享内存文件进行锁定时转储核心,则所有其他进程最终都会等待释放此锁定。
关于如何克服这个问题的任何想法?我想确保当一个持有锁的进程死掉时,它应该确保锁被释放。
我看到的一个问题是我没有调用named_mutex对象的析构函数。这可能是这个问题的原因吗?是否保证在进程核心转储时调用析构函数?
谢谢!