diff options
author | makoto kuwata <kwa@kuwata-lab.com> | 2011-03-21 08:22:37 +0900 |
---|---|---|
committer | makoto kuwata <kwa@kuwata-lab.com> | 2011-03-21 08:22:37 +0900 |
commit | 2c7f043f66d80b0b72217c79162d912a73dc80b9 (patch) | |
tree | 8099de950f51acf9c5e0415d3d4aa5cdc15e1ee2 | |
parent | 94ea2493ec5592a7b729e3b916652c0d7f415650 (diff) | |
download | erubis-2c7f043f66d80b0b72217c79162d912a73dc80b9.tar.gz |
[change] 'Erubis::Engine.load_file()' to rename temporary file instead of using flock
-rw-r--r-- | lib/erubis/engine.rb | 8 |
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 |