5
我有以下boost :: interprocess :: message_queue相关的问题。Boost消息队列
按照计划,我计划在> = 2个进程之间共享消息队列。很明显,其中一个可能会在消息队列中崩溃。因此,它将持有内部锁,使其他进程无法访问该队列。这怎么解决?似乎没有办法解锁使用的内部互斥锁。
我有以下boost :: interprocess :: message_queue相关的问题。Boost消息队列
按照计划,我计划在> = 2个进程之间共享消息队列。很明显,其中一个可能会在消息队列中崩溃。因此,它将持有内部锁,使其他进程无法访问该队列。这怎么解决?似乎没有办法解锁使用的内部互斥锁。
我们可以使用其他进程中的谓词等待方法(根据需求1分钟或更长时间),那么如果满足则通过第二个进程强行解锁队列,然后在读取后再次锁定推入和解锁?
欲了解更多详情,请参阅下面的参考文献。
http://en.cppreference.com/w/cpp/thread/condition_variable/wait
编辑:
我们无法解锁内部锁,我还以为你手动锁使用
scoped_lock的锁(互斥)队列 ;
因此,您可以在完成时间后使用predicate_wait来解锁,然后解锁它。 来自其他进程。
嗨,阿里,我们该如何“通过第二个过程强制解锁队列”? –
嗨,强有力的手段只是在条件满足后手动解锁队列。 – Ali786
请指定要使用哪种方法“手动解锁队列”http://www.boost.org/doc/libs/1_55_0/doc/html/boost/interprocess/message_queue_t.html –