summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-07-01 09:31:37 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-07-01 09:31:37 +0000
commit6d1996039d9a66c604d363444799449f12c76d2b (patch)
tree9b31dec1a263ad57f37b3266307fa28243c995e4 /lib
parentdc8db5305ce0228484a06ca08d0f137c2f9b82af (diff)
downloadruby-6d1996039d9a66c604d363444799449f12c76d2b.tar.gz
ruby-6d1996039d9a66c604d363444799449f12c76d2b.tar.xz
ruby-6d1996039d9a66c604d363444799449f12c76d2b.zip
* lib/pstore.rb (PStore#transaction): get rid of opening in write mode
when read only transaction. [ruby-dev:23842] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@6558 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r--lib/pstore.rb9
1 files changed, 3 insertions, 6 deletions
diff --git a/lib/pstore.rb b/lib/pstore.rb
index 25294fe00..c4c6dd56a 100644
--- a/lib/pstore.rb
+++ b/lib/pstore.rb
@@ -97,18 +97,15 @@ class PStore
new_file = @filename + ".new"
content = nil
- file = File.open(@filename, File::RDWR | File::CREAT)
unless read_only
+ file = File.open(@filename, File::RDWR | File::CREAT)
file.flock(File::LOCK_EX)
commit_new(file) if FileTest.exist?(new_file)
content = file.read()
else
+ file = File.open(@filename, File::RDONLY)
file.flock(File::LOCK_SH)
- if FileTest.exist?(new_file)
- File.open(new_file) {|fp| content = fp.read()}
- else
- content = file.read()
- end
+ content = (File.read(new_file) rescue file.read())
end
if content != ""