如this问题中所述,如果持有互斥锁的进程崩溃,使用boost的interprocess_mutex和进程间condition_variable可能会导致死锁。
这是因为boost的互斥锁不是内核对象,因此在持有它的进程退出时不会自动释放。boost中有没有办法将进程间条件变量与调用CreateMutex返回的互斥锁一起使用?
发布于 2017-07-13 17:41:40
只需直接使用CreateSemaphore()
跨多个进程实现condvar即可。您不需要使用Boost condvars。Windows提供了一组非常丰富的定义良好、命名正确的机器范围的同步对象。使用它们来代替。
https://stackoverflow.com/questions/45045248
复制相似问题