boost::interprocess::interprocess_mutex と boost::interprocess::interprocess_condition 変数を持つマネージド共有メモリ セグメントがあります。共有メモリにアクセスする 2 つのプロセスがあり、ミューテックスと条件に基づいてアクセスを同期しています。最初のプロセスが notify_all メソッドでブロックされるケースに遭遇しました。最初はこれは非ブロック メソッドだと思っていましたが、プロセス間条件がそれ自体を同期するために使用されるミューテックスを実装しているようです。
このデッドロックが発生するのは、条件の待機中にプロセス 2 が不当に強制終了された場合です。これにより、条件のミューテックスがロック解除されなくなり、プロセス 2 を再度実行するとブロックされます。プロセス2を2回目に開始したときにプロセス間条件をリセットまたはクリーンアップする方法はありますか.