是否存在可以存储在Windows上的共享内存中的condition_variable和mutex的强大实现?

时间:2017-07-11 22:08:01

标签: boost mutex interprocess

正如this问题中所述,如果持有互斥锁的进程崩溃,使用boost的interprocess_mutex和interproces condition_variable可能会导致死锁。
这是因为boost的互斥锁不是内核对象,因此当持有它的进程退出时不会自动释放。 在使用调用CreateMutex返回的互斥锁时,是否有一种方法可以使用进程间条件变量?

1 个答案:

答案 0 :(得分:0)

直接使用CreateSemaphore()跨多个进程实施condvar。您不需要使用Boost condvars。 Windows提供了一组非常丰富的定义良好,相当正确的命名机器范围的同步对象。请改用它们。