我有以下与boost::interprocess::message_queue相关的问题。
按照预期,我计划在>= 2进程之间共享一个消息队列。显然,其中之一可能会在消息队列中崩溃。因此,它将持有内部锁,使其他进程无法访问队列。如何解决这一问题?似乎没有办法解锁所使用的内部互斥物。
发布于 2014-07-10 07:31:09
我们可以在其他进程中使用谓词等待的方法(根据需求1分钟或更长),如果满足,那么第二个进程强制解锁队列,读取后再锁定以推开和解锁?
有关更多细节,请参见下面的参考资料。
http://en.cppreference.com/w/cpp/thread/condition_variable/wait
编辑:
我们无法解锁内部锁,我认为您正在手动锁定队列
scoped_lock锁(互斥锁);
因此,您可以在时间结束后使用predicate_wait解锁,然后解锁。从其他过程。
https://stackoverflow.com/questions/7205114
复制相似问题