提升消息队列

Yor*_*lov 5 boost message-queue boost-interprocess

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

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

Ali*_*786 0

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

有关更多详细信息,请参阅下面的参考文献。

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

编辑:

我们无法解锁内部锁,我认为您正在使用手动锁定队列

scoped_lock 锁(互斥锁);

因此,您可以在时间结束时使用 predicate_wait 解锁,然后解锁。来自其他进程。