[#18151] Regexp.last_match — WATANABE Tetsuya <llama@...01.gate01.com>
渡辺哲也です。
[#18186] [req] Marshal — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
新井です。
まつもと ゆきひろです
In article <1031498274.659939.18144.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
In article <1032189662.175916.22019.nullmailer@picachu.netlab.jp>,
[#18208] Re: [ruby-list:35875] Unsecure world writeabledir の警告 — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
わたなべです。
[#18229] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
わたなべです。
わたなべです。
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
わたなべです。
[#18246] Re: missing/vsnprintf.c: printf("%+f", -0.0) — WATANABE Hirofumi <eban@...>
わたなべです。
At Tue, 10 Sep 2002 12:21:10 +0900,
[#18262] mswin32: EINVAL on Process.kill — Minero Aoki <aamine@...>
あおきです。
[#18274] $0 handling on DOSISH — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
なかだです。
岩月と申します。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
[#18285] rubicon on EWS4800 — Koji Arai <JCA02266@...>
新井です。
新井です。
まつもと ゆきひろです
新井です。
まつもと ゆきひろです
新井です。
なかだです。
In message <20020921.152641.11483667.JCA02266@nifty.ne.jp>
なかだです。
In article <200209211605.g8LG52p04564@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
In article <200209211628.g8LGSxp04786@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
In article <200209211739.g8LHdKp05495@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
In article <200209220415.g8M4Fkp24392@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
In article <200209260105.g8Q15PR08171@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
In article <20020921.152641.11483667.JCA02266@nifty.ne.jp>,
なかだです。
In article <200209251737.g8PHbdR03024@sharui.nakada.kanuma.tochigi.jp>,
渡辺哲也です。
なかだです。
渡辺哲也です。
渡辺哲也です。
なかだです。
渡辺哲也です。
なかだです。
In article <200210020254.g922srH01700@sharui.nakada.kanuma.tochigi.jp>,
[#18314] class nest in module_eval — Minero Aoki <aamine@...>
あおきです。
[#18361] compile parse.y with -Wall — nobu.nakada@...
なかだです。
なかだです。
[#18371] Re: [ruby-cvs] ruby/lib/uri: * eval.c (ruby_run): should set toplevel visibility again here. — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#18374] Re: [ruby-cvs] ruby/ext/tcltklib: * eval.c (ruby_run): should set toplevel visibility again here. — WATANABE Hirofumi <eban@...>
わたなべです。
まつもと ゆきひろです
なかだです。
わたなべです。
いがらしです。少し前の話ですが。
わたなべです。
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
[#18391] pstore.rb can make a broken store — YANAGAWA Kazuhisa <kjana@...4lab.to>
# お願いされたから書いてみよう :-)
In article <20020926134339.C8DAE1EE12@milestones.dm4lab.to>,
[ruby-dev:18391] pstore.rb can make a broken store
# お願いされたから書いてみよう :-)
psore.rb はファイルに書き込むとき rewind して write して truncate して
ますが,これだと外から SIGKILL を送られたりする中途半端な書き込みになっ
て,データが壊れてしまうんじゃないかと思います.
別のファイルに書いて rename するとか,何かもっと安全な手段をとるべきだ
と思うのですが,どうでしょうか.
# だいたい後に付けたパッチのような感じでいいのかな? ついでに abort し
# たとき content を unref してないのも直してます.
それとは別ですが.... thread safe じゃないというか,複数のスレッドから
アクセスすると nested transaction で例外があがるっていうのはちょっと変
な気がします.
方針の問題にもなりますが.1 プロセスでは高々一つのトランザクションしか
走らないっていうのも,それはそれで有りかも.それでも nested はうそだし
な,と.
--
柳川和久 @ 東大阪市 . 大阪府 September 26, 2002
No gains without pains.
*** pstore.rb.orig Thu Sep 26 22:37:50 2002
--- pstore.rb Thu Sep 26 22:39:16 2002
***************
*** 88,90 ****
begin
! file = File::open(@filename, "rb+")
orig = true
--- 88,90 ----
begin
! file = File::open(@filename, "rb")
orig = true
***************
*** 92,94 ****
raise if read_only
! file = File::open(@filename, "wb+")
end
--- 92,94 ----
raise if read_only
! file = File::open(@filename, "wb")
end
***************
*** 115,117 ****
if !read_only && !@abort
- file.rewind
content = Marshal::dump(@table)
--- 115,116 ----
***************
*** 120,124 ****
begin
! file.write(content)
! file.truncate(file.pos)
! content = nil # unreference huge data
rescue
--- 119,123 ----
begin
! tmpname = "%s.%d.%d"%[@filename, Process::pid, Time.now.to_i]
! File::open(tmpname, "wb") {|f| f.write(content)}
! File::rename tmpname, @filename
rescue
***************
*** 126,127 ****
--- 125,128 ----
raise
+ ensure
+ content = nil # unreference huge data
end