複数のマルチスレッド プロセスが、boost::interprocess (named_mutex の scoped_lock) を介して管理される共有メモリ ファイルのロックを取得しようとしているアプリケーションに取り組んでいます。
これらのプロセスの 1 つが共有メモリ ファイルのロックを保持している間にコアをダンプすると、他のすべてのプロセスはこのロックが解放されるのを待つことになるようです。
これをどのように克服できるかについてのアイデアはありますか? ロックを保持しているプロセスが終了したときに、ロックが確実に解放されるようにしたいと考えています。
問題の 1 つは、named_mutex オブジェクトのデストラクタを呼び出していないことです。これがこの問題の原因でしょうか? プロセスのコアダンプ時にデストラクタが呼び出されることが保証されていますか?
ありがとう!