summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormakoto kuwata <kwa@kuwata-lab.com>2011-03-21 08:22:37 +0900
committermakoto kuwata <kwa@kuwata-lab.com>2011-03-21 08:22:37 +0900
commit2c7f043f66d80b0b72217c79162d912a73dc80b9 (patch)
tree8099de950f51acf9c5e0415d3d4aa5cdc15e1ee2
parent94ea2493ec5592a7b729e3b916652c0d7f415650 (diff)
downloaderubis-2c7f043f66d80b0b72217c79162d912a73dc80b9.tar.gz
[change] 'Erubis::Engine.load_file()' to rename temporary file instead of using flock
-rw-r--r--lib/erubis/engine.rb8
1 files 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