From: Tanaka Akira Date: 2005-08-26T02:56:49+09:00 Subject: Re: [ANN] EventLoop 0.0.20050825.1600 In article <430DFCD4.6000405@path.berkeley.edu>, Joel VanderWerf writes: > I *love* ruby threads. Still, I wish ruby's thread scheduler would > handle more types of blocking than select can handle, such as waiting > for a file lock. File#flock works well since Ruby 1.8.2. It blocks only the calling thread. It doesn't block other threads. % ruby-1.8.2 -ve ' f1 = open("z", "w") f1.flock(File::LOCK_EX) t = Thread.new { f2 = open("z", "w") p :f2_lock_start f2.flock(File::LOCK_EX) p :f2_lock_end } 3.times {|i| p i; sleep 1 } f1.flock(File::LOCK_UN) t.join ' ruby 1.8.2 (2004-12-25) [i686-linux] :f2_lock_start 0 1 2 :f2_lock_end -- Tanaka Akira