summaryrefslogtreecommitdiff
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
commit73cf1d02bac2dbdd5d7f673a33d81444a00c865e (patch)
tree9b31dec1a263ad57f37b3266307fa28243c995e4 /lib
parent7662d794fed79e87d30962cac4b50a3843d390d3 (diff)
* lib/pstore.rb (PStore#transaction): get rid of opening in write mode
when read only transaction. [ruby-dev:23842] git-svn-id: svn+ssh://ci.ruby-lang.org/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 25294fe009..c4c6dd56a5 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 != ""