提升消息队列

时间:2011-08-26 13:09:21

标签: boost message-queue boost-interprocess

我有以下的boost :: interprocess :: message_queue相关问题。

按照预期,我计划在> = 2个进程之间共享一个消息队列。显然,其中一个可能在消息队列中崩溃。因此,它将保留内部锁,使其他进程无法访问队列。怎么解决这个问题?似乎没有办法解锁使用的内部互斥锁。

1 个答案:

答案 0 :(得分:0)

我们可以在其他进程中使用谓词等待的方法(根据需求1分钟或更长时间)然后如果满足然后通过第二个进程强制解锁队列,那么在读取后再次锁定推送和解锁?

有关详细信息,请参阅以下参考。

http://en.cppreference.com/w/cpp/thread/condition_variable/wait

编辑:

我们无法解锁内部锁,我以为您是手动锁定队列 使用

  

scoped_lock lock(互斥锁);

所以你可以在完成时间后使用predicate_wait解锁然后解锁它。 来自其他过程。