[#24698] NKF(nkf2)を1.8ブランチに入れました — "NARUSE, Yui" <naruse@...>

naruseです。

14 messages 2004/11/03
[#24734] Re: NKF(nkf2)を1.8ブランチに入れました — 堀川 久 <vzw00011@...> 2004/11/06

こんにちは。

[#24720] メール関係ライブラリの標準添付について — MoonWolf <moonwolf@...>

MoonWolfです。

17 messages 2004/11/05
[#24721] Re: メール関係ライブラリの標準添付について — Yukihiro Matsumoto <matz@...> 2004/11/05

まつもと ゆきひろです

[#24722] Re: メール関係ライブラリの標準添付について — MoonWolf <moonwolf@...> 2004/11/05

MoonWolfです。

[#24804] Re: まつもとさんの負担を減らすために、何ができるだろう — "URABE Shyouhei aka.mput" <root@...>

mput です。 ruby-dev に移動します。

21 messages 2004/11/13
[#24805] Re: まつもとさんの負担を減らすために、何ができるだろう — Tanaka Akira <akr@...17n.org> 2004/11/13

In article <2D6284E3-351D-11D9-B7EF-000393735AAE@mput.dip.jp>,

[#24806] Re: まつもとさんの負担を減らすために、何ができるだろう — "URABE Shyouhei aka.mput" <root@...> 2004/11/13

mput です。

[#24808] Re: まつもとさんの負担を減らすために、何ができるだろう — Masayoshi Takahashi <maki@...> 2004/11/13

高橋征義です。

[#24809] Re: まつもとさんの負担を減らすために、何ができるだろう — "URABE Shyouhei aka.mput" <root@...> 2004/11/13

mput です。

[#24834] Process.getrlimit and Process.setrlimit — Tanaka Akira <akr@...17n.org>

Process.getrlimit と Process.setrlimit が欲しいので実装してみました。

25 messages 2004/11/13

[#24965] sync and stdio buffering — Tanaka Akira <akr@...17n.org>

ちょっとした思いつきなのですが、

12 messages 2004/11/26

[#24993] rb_io_sysread dumps core [BUG] rb_sys_fail() - errno == 0 — Tietew <tietew-ml-ruby-dev@...>

ソケットとスレッドを大量に使うアプリ(具体的には IRCbot です)を

13 messages 2004/11/29

[#25003] IO#flush dumps core again — Tanaka Akira <akr@...17n.org>

次のようにすると core を吐きます。

28 messages 2004/11/30
[#25004] Re: IO#flush dumps core again — nobu@... 2004/11/30

なかだです。

[#25005] Re: IO#flush dumps core again — Yukihiro Matsumoto <matz@...> 2004/11/30

まつもと ゆきひろです

[#25009] Re: IO#flush dumps core again — Tanaka Akira <akr@...17n.org> 2004/12/01

In article <1101836040.635395.27476.nullmailer@x31.priv.netlab.jp>,

[#25014] Re: IO#flush dumps core again — Tanaka Akira <akr@...17n.org> 2004/12/01

In article <1101878558.979715.1359.nullmailer@x31.priv.netlab.jp>,

[#25015] Re: IO#flush dumps core again — Yukihiro Matsumoto <matz@...> 2004/12/01

まつもと ゆきひろです

[#25056] Re: IO#flush dumps core again — Tanaka Akira <akr@...17n.org> 2004/12/05

In article <1101888165.570792.4192.nullmailer@x31.priv.netlab.jp>,

[#25074] Re: IO#flush dumps core again — Tanaka Akira <akr@...17n.org> 2004/12/06

In article <1102293033.356112.2288.nullmailer@x31.priv.netlab.jp>,

[ruby-dev:24996] Re: rb_io_sysread dumps core [BUG] rb_sys_fail() - errno == 0

From: nobu@...
Date: 2004-11-30 05:17:11 UTC
List: ruby-dev #24996
なかだです。

At Tue, 30 Nov 2004 06:53:15 +0900,
Tietew wrote in [ruby-dev:24993]:
> とりあえずコアは採ってあるのですが,TRAP_END の中で errno がクリ
> アされているような雰囲気です。

TRAP_ENDではerrnoを保存しているので、それはないはずです。一つの
可能性としては、rb_io_sysread()ではrb_sys_fail()の直前で
rb_str_resize()を呼んでいるので、その中でクリアされているとか。


Index: io.c
===================================================================
RCS file: /cvs/ruby/src/ruby/io.c,v
retrieving revision 1.246.2.53
diff -u -2 -p -r1.246.2.53 io.c
--- io.c	29 Nov 2004 04:38:08 -0000	1.246.2.53
+++ io.c	30 Nov 2004 05:11:18 -0000
@@ -91,4 +91,7 @@ extern void Init_File _((void));
 #endif
 
+#define preserving_errno(stmts) \
+	do {int saved_errno = errno; stmts; errno = saved_errno;} while (0)
+
 VALUE rb_cIO;
 VALUE rb_eEOFError;
@@ -1065,5 +1068,5 @@ read_all(fptr, siz, str)
 	rb_str_unlocktmp(str);
 	if (n == 0 && bytes == 0) {
-	    rb_str_resize(str,0);
+	    preserving_errno(rb_str_resize(str, 0));
 	    if (!fptr->f) break;
 	    if (feof(fptr->f)) break;
@@ -1141,5 +1144,5 @@ io_read(argc, argv, io)
     rb_str_unlocktmp(str);
     if (n == 0) {
-	rb_str_resize(str,0);
+	preserving_errno(rb_str_resize(str, 0));
 	if (!fptr->f) return Qnil;
 	if (feof(fptr->f)) return Qnil;
@@ -2185,5 +2188,5 @@ rb_io_sysread(argc, argv, io)
 
     if (n == -1) {
-	rb_str_resize(str, 0);
+	preserving_errno(rb_str_resize(str, 0));
 	rb_sys_fail(fptr->path);
     }


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread