At the following URL
http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/db1d1d63b26d371/21bba01335a8615c?lnk=gst&q=mandatory+locks&rnum=3#21bba01335a8615c
There is the following code
#!/usr/local/ruby-1.8.0/bin/ruby
require ‘ftools’
require ‘tempfile’
def compete who, f
5.times do |i|
f.flock File::LOCK_EX
f.puts format(“%s:%d @ %f\n”,who, i, Time.now.to_f)
f.flock File::LOCK_UN
end
end
path = format(FILE + ‘.out’)
fd = open(path, File::WRONLY | File::TRUNC | File::CREAT)
if fork
compete ‘PARENT’, fd
Process.wait rescue nil
open(path){|f| puts f.read}
fd.close
File.rm_f path if File.exist? path
else
compete ‘CHILD’, fd
end
The code runs on my system. But, I don’t see any call to Tempfile.new.
I’m assuming it’s implied? If it is being implied, where is it being
implied at in the code?