タグ

ブックマーク / unageanu.hatenablog.com (1)

  • 2007-06-26

    File#flockを利用したReadWriteロックを書いてみました。仕様は以下の通りで、 「読み中に書き」 「書き中に書き」 「書き中に読み」 の場合、前の処理が終了してロックを解放するまで次の処理をブロックすることで、処理を排他制御します。 読み中に.. 書き中に.. 読み ×排他制御されない ○排他制御される 書き ○ ○ ReadWriteロック: require "fileutils" # File.flockを利用したRead-Writeロック class FileLock def initialize(lockfile) @lockfile = lockfile end # 読み込みロックしてブロックを実行する。 # -ロックされていても他の読み込みユーザーはブロックさない。 # -他の書き込みユーザーはブロックされる。 def readlock ( &block ) Fi

    2007-06-26
  • 1