Windows アプリケーションを Linux に移植していますが、同期の問題があります。
Windows では、共有メモリ ブロックへのアクセスを同期するために、システム レベルの名前付きミューテックスを使用しています。
Linuxでそれをエミュレートするにはどうすればよいですか? semget を使用して SystemV セマフォを作成しました。問題は、再入可能ではないことです。既に保持している場合、Windows とは異なり、ブロックされます。これに参照カウントを追加することもできますが、その場合はアクセスを同期する必要があります。つまり、別の (今回は現在のプロセスのみの) ミューテックスを意味します。
再入可能なプロセス間ロックを提供するクラスはどこかにありますか (おそらく Boost で)?
ところで、ファイル ロックの使用はおそらく遅すぎるため、受け入れられません (2 つのプロセス間の超低遅延通信が必要です)。