【Perl】ファイルロック(排他処理)について語ろうat PHP【Perl】ファイルロック(排他処理)について語ろう - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト77:nobodyさん 02/06/27 20:25 \∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,, /三√ ゚Д゚) / \____________ ,,、,、,,, /三/| ゚U゚|\ ,,、,、,,, ,,、,、,,, ,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/ //三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ∪ ∪ ( ) ( ) ( ) ) ,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ,,、,、,,, ( ) ( ) ( ) ( ) 78:「このサイトの人」 02/06/28 01:42 lpc8XUFV おかげさまで、rename失敗の場合について考える機会を持てました。 とりあえず結論出しておきます。 rename失敗の殆どの場合、何も起こらなかった、つまり古いロック 1とロック2 が両方残ることになるでしょうから、その時には他のプ ロセスが侵入することはありません。 万一、ロック2が消え古いロック1が残ると排他は失敗しますが、そ の場合、ロック2のディレクトリが消失したか、違う名前にrenameさ れたことになりますね。ファイルシステムのエラーによって、絶対 起こらない事とは言えませんが、そこまで考慮する必要があるのか どうかは疑問。 疑問ではありますが、あえて考慮するなら、上記のわたしの排他制 御で、 rename($lockdir2, $lockdir) or &error("LOCK ERROR"); として、rename失敗したプロセスを、その時点で終了させることに すれば問題なくなります。 ごく稀にロック2が残る可能性は残りますが、ロック1が残る可能性 より低いのですから、残存ロック削除機能付きの排他方法として、 それなりに使えるのではないかと。 では。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch