diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-10-05 01:37:46 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-10-05 01:37:46 +0000 |
commit | c800d0b75d23e2ac8c10674ff41cc25b0c793ddd (patch) | |
tree | f5467a0440e49ed7016e2d21f44ff00de5804855 /lib/pstore.rb | |
parent | 889a620b769145a7c20c7ce78aff62d80e485496 (diff) |
* io.c (rb_fopen): mode string copy at the lowest level.
* io.c (rb_io_flags_mode): requires output buffer no more. no
allocation needed.
* array.c (rb_ary_index): takes a block to compare items in an
array. [ruby-talk:113069] [Ruby2]
* array.c (rb_ary_rindex): ditto.
* marshal.c (r_byte): retrieve pointer from string value for each
time. [ruby-dev:24404]
* marshal.c (r_bytes0): ditto.
* enum.c (sort_by_i): re-entrance check added. [ruby-dev:24399]
* io.c (io_read): should freeze all reading buffer.
[ruby-dev:24400]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6996 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/pstore.rb')
-rw-r--r-- | lib/pstore.rb | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/pstore.rb b/lib/pstore.rb index c4c6dd56a5..dc4d976a4c 100644 --- a/lib/pstore.rb +++ b/lib/pstore.rb @@ -99,11 +99,13 @@ class PStore content = nil unless read_only file = File.open(@filename, File::RDWR | File::CREAT) + file.binmode file.flock(File::LOCK_EX) commit_new(file) if FileTest.exist?(new_file) content = file.read() else file = File.open(@filename, File::RDONLY) + file.binmode file.flock(File::LOCK_SH) content = (File.read(new_file) rescue file.read()) end |