[#32171] autoload_delete — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
[#32185] Date#+に大きな数字を与えるとおかしな日付に — "madoka yamamoto" <yamamotomadoka@...>
こんにちは、山本と申します。
> Dateオブジェクトに+で大きな数字を与えるとおかしくなるようです。
山本です。
> アルゴリズムの意味がわからないで書いた、表層的なパッチなので
Hi,
> 1.9ではRationalとComplexを組み込みに、という話はありましたが、
原です。
ささだです.
[#32192] test-all results - ruby 1.9.0 (2007-11-09 patchlevel 0) [i686-linux] — SASADA Koichi <ko1@...>
ささだです.
[#32198] [提案] Array#tail — "Yusuke ENDOH" <mame@...>
遠藤と申します。
まつもと ゆきひろです
西山と申します
遠藤です。
[#32204] yydebug — Nobuyoshi Nakada <nobu@...>
なかだです。
[#32205] Use two pipes for duplex IO.popen — Tanaka Akira <akr@...>
改心して duplex な IO.popen で socketpair を使うのはやめよう
なかだです。
In article <20071111120021.7f0592e5.nobu@ruby-lang.org>,
[#32206] Integer#ord for 1.8 — Tanaka Akira <akr@...>
1.9 と 1.8 の両方で ?a.ord で 97 が得られるように、1.8 に
[#32219] trunkでビルド失敗 — KIMURA Koichi <kimura.koichi@...>
木村です。
[#32247] round missing (mswin32) — KIMURA Koichi <kimura.koichi@...>
木村です。
[#32263] toplevel irb method — SASADA Koichi <ko1@...>
ささだです.
まつもと ゆきひろです
[#32266] version string — SASADA Koichi <ko1@...>
ささだです.
[#32268] RFLOAT_VALUE(val), DOUBLE2NUM(dbl) — SASADA Koichi <ko1@...>
ささだです.
SASADA Koichi wrote:
[#32306] nanosecond Time and stat — Tanaka Akira <akr@...>
最近、nanosecond 単位な timestamp があるようです。
In article <874pflntd5.fsf@fsij.org>,
まつもと ゆきひろです
In article <E1Iu2GD-0004Wh-1I@x31>,
[#32308] core dump with undef/alias using dynamic symbols — Tadashi Saito <shiba@...2.accsnet.ne.jp>
斎藤と申します。
遠藤と申します。
ささだです.
遠藤です。
ささだです.
[#32329] enumerator with single array and multiple arguments. — Tanaka Akira <akr@...>
enumerator を通すとひとつの配列と複数の引数が区別できません。
[#32330] defined?($&) — Tanaka Akira <akr@...>
ふと気がついたんですが、defined?($&) が "expression" になり
まつもと ゆきひろです
まつもと ゆきひろです
ささだです.
[#32333] test/ruby/test_eval.rb — SASADA Koichi <ko1@...>
ささだです.
まつもと ゆきひろです
ささだです.
まつもと ゆきひろです
[#32348] DRb test leaves ut_eval.rb process — Tanaka Akira <akr@...>
DRb のテストをすると、(テストがいろいろと失敗する他に) プロ
[#32352] 1.9.1のリリース時期について — KIMURA Koichi <hogemuta@...>
木村です。
まつもと ゆきひろです
木村です。
まつもと ゆきひろです
[#32403] Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — Takahiro Kambe <taca@...>
こんばんは。
卜部です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
成瀬です。
卜部です。
遠藤と申します。
遠藤です。
ささだです.
まつもと ゆきひろです
[#32404] SEGV on child process by fork on GC.stress. — Tanaka Akira <akr@...>
GC.stress = true 下で fork すると子プロセスが SEGV します。
まつもと ゆきひろです
In article <E1Iy7HA-0006zn-37@x31>,
まつもと ゆきひろです
ささだです.
[#32409] Re: [ruby-cvs:21293] Ruby:r14056 (trunk): * signal.c (trap_signm): SIGVTALRM no longer used for green — SASADA Koichi <ko1@...>
ささだです.
さとうふみやす @ OSS テクノロジです。
ささだです.
まつもと ゆきひろです
[ruby-dev:32296] CGI::Session::FileStore のデータが壊れる
とみたです。
1.8.6 で CGI::Session::FileStore のデータが壊れることがあります。
* LOCK_EX を獲得できてないのにファイルの内容を消している。
412: f = File.open(@path, File::CREAT|File::TRUNC|File::RDWR, 0600)
413: f.flock File::LOCK_EX
* finalizer から呼ばれる時、ファイルの内容が中途半端になることがある。
こっちの原因は良く分かりませんが、@hash の内容をファイルに出力している
時に何かが起きて途中までになってしまうようです。CGI が終了しないうちに
ブラウザが別のリンクを押した等で、CGI が SIGPIPE になった場合に発生する
みたいです。
ということで、次のようにしてみたらうまく動いているようです。
--- session.rb.orig 2007-02-13 08:01:19.000000000 +0900
+++ session.rb 2007-11-15 07:49:17.000000000 +0900
@@ -391,8 +391,9 @@
unless @hash
@hash = {}
begin
+ lockf = File.open(@path+".lock", "r")
+ lockf.flock File::LOCK_SH
f = File.open(@path, 'r')
- f.flock File::LOCK_SH
for line in f
line.chomp!
k, v = line.split('=',2)
@@ -400,6 +401,7 @@
end
ensure
f.close unless f.nil?
+ lockf.close if lockf
end
end
@hash
@@ -409,13 +411,17 @@
def update
return unless @hash
begin
- f = File.open(@path, File::CREAT|File::TRUNC|File::RDWR, 0600)
- f.flock File::LOCK_EX
+ lockf = File.open(@path+".lock", File::CREAT|File::RDWR, 0600)
+ lockf.flock File::LOCK_EX
+ f = File.open(@path+".new", File::CREAT|File::TRUNC|File::WRONLY, 0600)
for k,v in @hash
f.printf "%s=%s\n", CGI::escape(k), CGI::escape(String(v))
end
+ f.close
+ File.rename @path+".new", @path
ensure
- f.close unless f.nil?
+ f.close if f and !f.closed?
+ lockf.close if lockf
end
end
@@ -426,6 +432,8 @@
# Close and delete the session's FileStore file.
def delete
+ File::unlink @path+".lock" rescue nil
+ File::unlink @path+".new" rescue nil
File::unlink @path
rescue Errno::ENOENT
end
--
とみたまさひろ <tommy@tmtm.org>
3469 42CC 4D32 F53C AD98 65A5 8C37 FF09 69C1 6040