From 2c7f043f66d80b0b72217c79162d912a73dc80b9 Mon Sep 17 00:00:00 2001 From: makoto kuwata Date: Mon, 21 Mar 2011 08:22:37 +0900 Subject: [change] 'Erubis::Engine.load_file()' to rename temporary file instead of using flock --- lib/erubis/engine.rb | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/erubis/engine.rb b/lib/erubis/engine.rb index 8ada39c..0ef9a47 100644 --- a/lib/erubis/engine.rb +++ b/lib/erubis/engine.rb @@ -54,11 +54,9 @@ module Erubis else input = File.open(filename, 'rb') {|f| f.read } engine = self.new(input, properties) - File.open(cachename, 'wb') do |f| - f.flock(File::LOCK_EX) - f.write(engine.src) - f.flush() - end + tmpname = cachename + rand().to_s[1,8] + File.open(tmpname, 'wb') {|f| f.write(engine.src) } + File.rename(tmpname, cachename) end engine.src.untaint # ok? return engine -- cgit v1.2.1