[#7968] array .{first, last, at} — Kazunori NISHI <kazunori@...>

西@九大です。

25 messages 1999/10/07
[#7969] Re: array .{first, last, at} — nobu.nakada@... 1999/10/07

なかだです。

[#7983] Re: array .{first, last, at} — Kazunori NISHI <kazunori@...> 1999/10/12

西@九大です。

[#7984] Re: array .{first, last, at} — matz@... (Yukihiro Matsumoto) 1999/10/12

まつもと ゆきひろです

[#7985] [patch] Array#delete_at w/ minus value — EGUCHI Osamu <eguchi@...> 1999/10/12

えぐち@エスアンドイーです。

[ruby-dev:8061] Re: [ruby-list:17813] Re: Exception.html & Errno.html for ruby-man-1.4.2-jp

From: matz@... (Yukihiro Matsumoto)
Date: 1999-10-19 05:13:22 UTC
List: ruby-dev #8061
まつもと ゆきひろです

In message "[ruby-dev:8060] Re: [ruby-list:17813] Re: Exception.html & Errno.html for ruby-man-1.4.2-jp"
    on 99/10/19, "NAKAMURA, Hiroshi" <nakahiro@sarion.co.jp> writes:

|> 誰も読んでいなかったというのが、相手がソケット(or PIPE)を
|> close()していたという場合のみSIGPIPE(EPIPE)が発生しますが、
|> これは1バイトでもwrite()した瞬間に分かります。
|
|なひもそう思います.で,write syscall中にSIGPIPEが飛んできて,
|それをRuby本体が捕まえて,
|Error::EPIPEという例外が「メインスレッドに」飛びます.
|
|# でしたよね? 変更されましたっけ? ^^;

えーと、まずwriteが-1を返し、errnoが EPIPE にセットされます。
ですから、writeを呼んだスレッドに Errno::EPIPE が飛びます。

その後、(昔の動作では)SIGPIPEが来て、シグナルハンドラがメ
インスレッドに Signal 例外が飛ばします。

ってことで、結局 SIGPIPE を無視しても EPIPE で検出できると思
うのですが、どうでしょう? 問題になる可能性があるのは、write
でバッファがいっぱいになるタイミングの関係で、EPIPEが検出さ
れずにSIGPIPEが来ちゃうことが、もしあれば、それの検出が(でき
ない、遅れる)可能性があることですね。

でも、あんまりなさそう。
                                まつもと ゆきひろ /:|)

In This Thread