【Perl】ファイルロック(排他処理)について語ろうat PHP
【Perl】ファイルロック(排他処理)について語ろう - 暇つぶし2ch71:「このサイトの人」
02/06/26 23:51 uIGx/rWA
>>68
あれ?
>プロセスA:作成時間が10分以上前と判断して処理を次へ渡す

>プロセスA:$lockdir2が存在するからリネーム成功
の間には他のプロセスは割り込めませんよ。
リネームを試みる前には$lockdir2がプロセスB等他を弾きます。
プロセスAがリネームを試みるのは一度だけ。

●作成時間が10分以上前の場合
プロセスA:ロックディレクトリ1に阻まれる(排他される)
プロセスA:ロックディレクトリ2を作成(排他)
プロセスA:作成時間が10分以上前と判断
プロセスA:$lockdir2が存在するからリネーム(ロックディレクトリ2をロックディレクトリ1に変換)(排他終了)
→プロセスBが割り込めるとしたらここだけ。しかもリネームが失敗した場合。
プロセスA:そのままロックに守られ排他が必要な処理
プロセスA:ロックディレクトリ1を消す

で、$lockdir2 が消え$lockdirが更新されない、というrename失敗
(こんなのあるの?)の場合だけプロセスBが割り込めます。

●作成時間が10分以上前ではない場合
プロセスA:ロックディレクトリ1に阻まれる(排他される)
プロセスA:ロックディレクトリ2を作成(排他)
プロセスA:作成時間が10分以上前でないと判断
プロセスA:ロックディレクトリ2を削除(排他終了)
プロセスA:&error("BUSY")でプロセス終了


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch