From: Masatoshi SEKI Date: 2000-06-13T02:14:21+09:00 Subject: [ruby-list:23190] pstore 咳といいます。 pstoreを試していて、バグっぽいのに遭遇しました。 ・まだ、データベース・ファイルがない状態で、 ・最初の transaction が abort すると 長さ 0 のファイルができてしまってそれ以降の transaction が 失敗してしまいます。(EOFError) loadするときにEOFErrorを拾ってあげるか、 ファイルがないときに @table を dump してあげれば よいのでしょうか? ファイルがないときには {} を dump するという方針のパッチです。 --- /usr/local/lib/ruby/1.4/pstore.rb Sat Apr 15 01:56:18 2000 +++ pstore-p1.rb Tue Jun 13 01:33:23 2000 @@ -88,14 +88,14 @@ file = File::open(@filename, "r+") orig = true else + @table = {} file = File::open(@filename, "w+") + Marshal::dump(@table, file) end file.flock(File::LOCK_EX) if orig File::copy @filename, backup @table = Marshal::load(file) - else - @table = {} end begin catch(:pstore_abort_transaction) do