我有一个托管共享内存段,它有一个 boost::interprocess::interprocess_mutex 和一个 boost::interprocess::interprocess_condition 变量。我有 2 个进程访问共享内存,它们正在根据互斥锁和条件同步访问。我遇到了一个案例,我的第一个进程阻塞了 notify_all 方法,最初我认为这是一个非阻塞方法,但似乎进程间条件实现了一个用于同步自身的互斥锁。
我遇到此死锁的情况是进程 2 在等待条件时被不正常地杀死,我相信这会阻止条件互斥锁被解锁,然后当我再次运行进程 2 时它会阻塞。无论如何,我第二次启动进程 2 时是否需要重置或清理进程间条件。