なかだです。 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はできる。 中田 伸悦