水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > デッドロック対策

デッドロック対策

2004年9月11日(土曜日)

デッドロック対策

デッドロックの原因は全く分かりません。クリティカルセクションの中で別のロックを要求しているような部分はないし……。

とあえず後ろ向きの対策として、ロックが必要なところで頑張りすぎないようにしてみました。

try{
    if(!Monitor.TryEnter(target, DataConst.LockInterval))
        throw new LockFailException("ロックに失敗しました。");

    ……クリティカルセクション……

} finally {
    Monitor.Exit(target);
} 

こんな感じ。ちなみに LockFailException はカスタム例外です。DataConst.LockInterval の値は定数で、とりあえず 5000 にしてあります。5秒待ってロックできなかったら諦めて、例外を吐いて終了する感じ。

関連する話題: プログラミング / C# / えび日記 / hatomaru.dll

最近の日記

関わった本など