method

save_data_with_atomic_file_rename_strategy

v2_6_3 - Show latest stable - Class: PStore
save_data_with_atomic_file_rename_strategy(data, file)
private

No documentation available.

# File lib/pstore.rb, line 450
  def save_data_with_atomic_file_rename_strategy(data, file)
    temp_filename = "#{@filename}.tmp.#{Process.pid}.#{rand 1000000}"
    temp_file = File.new(temp_filename, WR_ACCESS)
    begin
      temp_file.flock(File::LOCK_EX)
      temp_file.write(data)
      temp_file.flush
      File.rename(temp_filename, @filename)
    rescue
      File.unlink(temp_file) rescue nil
      raise
    ensure
      temp_file.close
    end
  end