正如this问题中所述,如果持有互斥锁的进程崩溃,使用boost的interprocess_mutex和interproces condition_variable可能会导致死锁。
这是因为boost的互斥锁不是内核对象,因此当持有它的进程退出时不会自动释放。
在使用调用CreateMutex返回的互斥锁时,是否有一种方法可以使用进程间条件变量?
答案 0 :(得分:0)
直接使用CreateSemaphore()
跨多个进程实施condvar。您不需要使用Boost condvars。 Windows提供了一组非常丰富的定义良好,相当正确的命名机器范围的同步对象。请改用它们。