[#20392] [BigDecimal] proposal to change specification — "Tadashi Saito" <shiba@...2.accsnet.ne.jp>

斎藤と申します。

25 messages 2003/06/20
[#20407] Re: [BigDecimal] proposal to change specification — "Shigeo Kobayashi" <shigeo@...> 2003/06/22

小林です。

[#20447] [BigDecimal] renaming proposal — "Tadashi Saito" <shiba@...2.accsnet.ne.jp>

斎藤です。

47 messages 2003/06/24
[#20621] Re: [BigDecimal] renaming proposal — "Shigeo Kobayashi" <shigeo@...> 2003/07/11

小林@MAILチェック中です。

[#20628] Re: [BigDecimal] renaming proposal — "Shigeo Kobayashi" <shigeo@...> 2003/07/11

小林です。

[ruby-dev:20470] Re: socket.writeでBUG

From: "yamamoto madoka" <dan@...2.so-net.ne.jp>
Date: 2003-06-27 05:19:40 UTC
List: ruby-dev #20470
山本です。

このパッチで直ったようです。
先ほどから、数十分再現プログラムを走らせていますが、
落ちていません。(いままでなら数分でまず落ちてました)

助かります。ありがとうございました。

----- Original Message ----- 
From: <nobu.nakada@nifty.ne.jp>
To: "ruby developers list" <ruby-dev@ruby-lang.org>
Sent: Friday, June 27, 2003 1:03 AM
Subject: [ruby-dev:20464] Re: socket.writeでBUG


> なかだです。
>
> At Mon, 16 Jun 2003 17:28:30 +0900,
> so wrote:
> > ハッキリしないのですが、
> > socketすでに切断され、Bad file descriptorな状態
> > になっているときsocket.writeをしようとすると、
> > たまに例外でなくBUGが起こることがあるという感じです。
> > スレッドも絡んでいるような気がします。
>
> すいません。時間ができたら見ようと思ってて、忘れてました。
>
> flushやcloseの中でスレッドが切り替わった後に、他のスレッドで同
> じIOがクローズされていないか確認する必要があるようです。
>
> たぶんこんな感じ。
>
>
> Index: io.c
> ===================================================================
> RCS file: /cvs/ruby/src/ruby/io.c,v
> retrieving revision 1.217
> diff -u -2 -p -r1.217 io.c
> --- io.c 23 Jun 2003 14:55:08 -0000 1.217
> +++ io.c 26 Jun 2003 15:58:13 -0000
> @@ -302,5 +302,7 @@ io_fflush(f, fptr)
>      int n;
>
> -    rb_thread_fd_writable(fileno(f));
> +    if (!rb_thread_fd_writable(fileno(f))) {
> +        rb_io_check_closed(fptr);
> +    }
>      for (;;) {
>   TRAP_BEG;
> @@ -1332,4 +1334,5 @@ fptr_finalize(fptr, noraise)
>   break;
>       }
> +     if (!fptr->f2) break;
>   }
>   fptr->f2 = 0;
> @@ -1340,4 +1343,5 @@ fptr_finalize(fptr, noraise)
>       if (f2 != -1 || !(fptr->mode & FMODE_WBUF)) break;
>       if (!rb_io_wait_writable(f1)) break;
> +     if (!fptr->f) break;
>   }
>   fptr->f = 0;
>
>
>
> -- 
> --- 僕の前にBugはない。
> --- 僕の後ろにBugはできる。
>     中田 伸悦
>


In This Thread

Prev Next