ぐぐっても日本語の資料が見つからなかったので書いときます。
多重起動チェックのために次のような感じで書いたところ、Windowsでは多重起動した場合に期待通りif文中には入らないのに、Monoだと多重起動しても中に入ってしまった。
bool created_new_mutex;Mutex mutex = new Mutex(true, "hoge", out created_new_mutex);if (created_new_mutex) { /* … */ }```
どうも共有ハンドルがデフォルトで無効になっているのが原因らしい。
次のように環境変数 MONO_ENABLE_SHM=1 を設定したら解決した。
```Bash:
export MONO_ENABLE_SHM=1
参考
- Release Notes Mono 2.8
http://www.mono-project.com/Release_Notes_Mono_2.8