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