>Netboy さんは、ノンブロッキングの flock なら OK、 >という立場ですよね? はい. 動作環境を知っていて,使えると判断した用途にはOKです. 例えば常駐動作のサーバー用のスクリプトなんかにはいいですよね. >それとも 両方価値がない、という話ですか? いいえ,fcntlは意味があると思います. POSIX準拠(?)+NFS対応だそうですし. あれはOSの内部操作をそのまま出してくれているんですよね? でもWin環境で互換性が無いので,あまり使いません. >> flockして成功したプロセスが無限ループに入ったとき, >という状況って、起こり得ますか? (現象事態は >root が SIGSTOP 送れば容易に発生しますが) 次のようなものです. - スクリプトの単なるバグ - 作成中のスクリプトのテスト時 - 予期しないデータを与えられたスクリプト - Perlインタプリタがコケたとき.OSリソース逼迫下. - インタプリタのバグ. - Apacheの設定ミス,管理者の不注意な設定変更. - クラッキングを受けたサーバー >Netboy さんは、どういうプログラムを想定しておられます? >ちなみに僕が考えたのは、カウンタとか web BBS とかです。 私も同じです. スクリプトのバグでは,機種/環境依存文字の訂正で ある予期しない文字列のとき置換操作が止まらなくなる...など. >僕の環境では「まともにロックできない」というのは >経験したことはありません それは68userさんだから(笑). 普通の人は下で書いたスクリプトみたいな感じです. NFSを使っているプロバイダの場合,もっと状況は複雑になります. >それと flock は、symlink・mkdir よりは速かったです。 う〜ん,負荷が掛かった時なんです,問題は. デッドロックの自動検出と,flockの解除のための pidの保存操作や予防措置も含めてください. MMX233+FreeBSDで1000個の掲示板が同時動作で平均待ちプロセスが2〜4個 の状況('97のテレホ時)でflockを使うかどうか,です. >訳の分からない排他制御手段を考える人 いや,いいんじゃないですか.誰もが通る出発点だと思います. 68userさんだって,miniBBSのアレとか,ほら,悪い思い出(笑). 混雑時の実用性や設置性を検証すると,面白いことになります. |