なかだです。

At Wed, 30 Jun 2004 08:58:05 +0900,
Yukihiro Matsumoto wrote in [ruby-dev:23836]:
> |1.8のYAML::Storeでもread only transactionが使えると
> |いいなと思ったので。
> 
> YAMLやPStoreの微妙な挙動の違いがないかどうか覚えていないので、
> そのまま当てるのに抵抗があるんですが。どなたか確認してくださ
> るなら。

PStoreはread_onlyモードの追加とftoolsからfileutilsへの移行、
YAML/storeは後者だけなので、そっくりバックポートしてしまっても
問題ないんじゃないでしょうか。

以前一つ気になったんですが、read_onlyであってもRDWRでオープンし
ようとしてるのはそういうもんでしょうか。


Index: lib/pstore.rb =================================================================== RCS file: /pub/cvs/ruby/src/ruby/lib/pstore.rb,v retrieving revision 1.20 diff -u -2 -p -r1.20 pstore.rb --- lib/pstore.rb 27 May 2004 07:43:37 -0000 1.20 +++ lib/pstore.rb 2 Jun 2004 08:02:46 -0000 @@ -98,16 +98,13 @@ class PStore 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
-- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦