[#18186] [req] Marshal — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

14 messages 2002/09/05
[#18190] Re: [req] Marshal — matz@... (Yukihiro Matsumoto) 2002/09/05

まつもと ゆきひろです

[#18229] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — "U.Nakamura" <usa@...>

こんにちは、なかむら(う)です。

22 messages 2002/09/09
[#18230] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — nobu.nakada@... 2002/09/09

なかだです。

[#18231] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — "U.Nakamura" <usa@...> 2002/09/09

こんにちは、なかむら(う)です。

[#18232] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — nobu.nakada@... 2002/09/09

なかだです。

[#18233] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — "U.Nakamura" <usa@...> 2002/09/09

こんにちは、なかむら(う)です。

[#18234] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — WATANABE Hirofumi <eban@...> 2002/09/09

わたなべです。

[#18236] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — "U.Nakamura" <usa@...> 2002/09/09

こんにちは、なかむら(う)です。

[#18238] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — WATANABE Hirofumi <eban@...> 2002/09/09

わたなべです。

[#18241] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — "U.Nakamura" <usa@...> 2002/09/09

こんにちは、なかむら(う)です。

[#18285] rubicon on EWS4800 — Koji Arai <JCA02266@...>

新井です。

59 messages 2002/09/13
[#18322] Re: rubicon on EWS4800 — Koji Arai <JCA02266@...> 2002/09/21

新井です。

[#18333] Re: rubicon on EWS4800 — kjana@...4lab.to (YANAGAWA Kazuhisa) 2002/09/21

In message <20020921.152641.11483667.JCA02266@nifty.ne.jp>

[#18336] Re: rubicon on EWS4800 — nobu.nakada@... 2002/09/21

なかだです。

[#18337] Re: rubicon on EWS4800 — Tanaka Akira <akr@...17n.org> 2002/09/21

In article <200209211605.g8LG52p04564@sharui.nakada.kanuma.tochigi.jp>,

[#18338] Re: rubicon on EWS4800 — nobu.nakada@... 2002/09/21

なかだです。

[#18341] Re: rubicon on EWS4800 — Tanaka Akira <akr@...17n.org> 2002/09/21

In article <200209211628.g8LGSxp04786@sharui.nakada.kanuma.tochigi.jp>,

[#18342] Re: rubicon on EWS4800 — nobu.nakada@... 2002/09/21

なかだです。

[#18343] Re: rubicon on EWS4800 — Tanaka Akira <akr@...17n.org> 2002/09/21

In article <200209211739.g8LHdKp05495@sharui.nakada.kanuma.tochigi.jp>,

[#18345] Re: rubicon on EWS4800 — nobu.nakada@... 2002/09/22

なかだです。

[#18349] Re: rubicon on EWS4800 — Tanaka Akira <akr@...17n.org> 2002/09/22

In article <200209220415.g8M4Fkp24392@sharui.nakada.kanuma.tochigi.jp>,

[#18374] Re: [ruby-cvs] ruby/ext/tcltklib: * eval.c (ruby_run): should set toplevel visibility again here. — WATANABE Hirofumi <eban@...>

わたなべです。

20 messages 2002/09/25
[#18376] Re: [ruby-cvs] ruby/ext/tcltklib: * eval.c (ruby_run): should set toplevel visibility again here. — matz@... (Yukihiro Matsumoto) 2002/09/25

まつもと ゆきひろです

[#18377] Re: [ruby-cvs] ruby/ext/tcltklib: * eval.c (ruby_run): should set toplevel visibility again here. — nobu.nakada@... 2002/09/25

なかだです。

[#18378] Re: [ruby-cvs] ruby/ext/tcltklib: * eval.c (ruby_run): should set toplevel visibility again here. — WATANABE Hirofumi <eban@...> 2002/09/25

わたなべです。

[ruby-dev:18391] pstore.rb can make a broken store

From: YANAGAWA Kazuhisa <kjana@...4lab.to>
Date: 2002-09-26 13:43:39 UTC
List: ruby-dev #18391
# お願いされたから書いてみよう :-)

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

In This Thread

Prev Next