次のboost::interprocess::message_queue関連の質問があります。
意図したとおり、2 つ以上のプロセス間でメッセージ キューを共有する予定です。明らかに、そのうちの 1 つがメッセージ キュー内でクラッシュする可能性があります。その結果、内部ロックが保持され、他のプロセスがキューにアクセスできなくなります。これはどのように解決できますか?使用されている内部ミューテックスをロック解除する方法はないようです。
次のboost::interprocess::message_queue関連の質問があります。
意図したとおり、2 つ以上のプロセス間でメッセージ キューを共有する予定です。明らかに、そのうちの 1 つがメッセージ キュー内でクラッシュする可能性があります。その結果、内部ロックが保持され、他のプロセスがキューにアクセスできなくなります。これはどのように解決できますか?使用されている内部ミューテックスをロック解除する方法はないようです。
他のプロセス(要件に基づいて1分以上)で述語待機の方法を使用できます。それが満たされる場合、2番目のプロセスでキューを強制的にロック解除し、プッシュのために再度ロックし、読み取り後にロックを解除しますか?
詳細については、以下の参照を参照してください。
http://en.cppreference.com/w/cpp/thread/condition_variable/wait
編集:
内部ロックを解除できません。手動でキューをロックしていると思われます
scoped_lock ロック (ミューテックス);
そのため、時間が終了したら predicate_wait を使用してロックを解除し、ロックを解除できます。他のプロセスから。