# File lib/puppet/util/file_locking.rb, line 7
 7:   def readlock(file)
 8:     raise ArgumentError, "#{file} is not a file" unless !File.exists?(file) or File.file?(file)
 9:     Puppet::Util.synchronize_on(file,Sync::SH) do
10:       File.open(file) { |f|
11:         f.lock_shared { |lf| yield lf }
12:       }
13:     end
14:   end