unixはぜんぜん知らないのですが、 flockに関しては以前から疑問があったので、 ちょっとお伺いします。 >とか書いた時点で終わってます.2箇所直せば使えますけど >普通そんなこと気付きません. open の時点で $file が破壊されるってことですね。 これは、確かにしっかりしたドキュメントが必要だと思います。 >あと,デッドロックの発生を検知するのが難しいです. flock でデッドロックが発生したら、意味ないのでは…? flock がセマフォを使ってるのか、別の何かを使ってるかは知りませんが、 デッドロックを回避できるからこそ flock の価値があるんではないでしょうか? それとも、セマフォとかの待ち行列の状態が検知できないという意味でしょうか? >Perlで普通にflockを使っていると,たいがい >まともにロックできないうえ処理速度が遅くなります. こういう文章を読んで、flockはダメだと勝手に判断して、 もっと酷い、訳の分からない排他制御手段を考える人が出て来るような気が… ただ、flockを使えばOSが対象ファイルごとに待ち行列を 用意することになるんでしょうから、チャット等が沢山使われるサーバーでは、 リソースを大量に消費して、レスポンスも悪くなるような気はします。 先のプロバイダの制限は、そういうことを嫌ったのではないでしょうか? |