[#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:8060] Re: [ruby-list:17813] Re: Exception.html & Errno.html for ruby-man-1.4.2-jp

From: "NAKAMURA, Hiroshi" <nakahiro@...>
Date: 1999-10-19 02:13:12 UTC
List: ruby-dev #8060
なひです.そろそろruby-dev?

> From: Takashima, Makoto [mailto:tksmmkt@coral.ocn.ne.jp]
> Sent: Tuesday, October 19, 1999 2:30 AM

> Rubyの実装については詳しくないので単なるUnixのソケット(or
> PIPE)の話として言えば、「送ったつもりになっていたら実はその
> PIPEの先を誰も読んでなかった」場合にはバッファが一杯になるま
> でwrite()は成功して、バッファが一杯になったらBLOCKモードであ
> ればwrite()はブロックし、NON-BLOCKモードであればwrite()は
> EAGAINとかEWOULDBLOCKとかいったエラーで失敗しますので
> SIGPIPE(EPIPE)は関係ないと思います。

はい.この場合SIGPIPEは上がりませんね.

> 誰も読んでいなかったというのが、相手がソケット(or PIPE)を
> close()していたという場合のみSIGPIPE(EPIPE)が発生しますが、
> これは1バイトでもwrite()した瞬間に分かります。

なひもそう思います.で,write syscall中にSIGPIPEが飛んできて,
それをRuby本体が捕まえて,
Error::EPIPEという例外が「メインスレッドに」飛びます.

# でしたよね? 変更されましたっけ? ^^;

結局,[ruby-list:17577]が真であれば何も問題はないのですが,
[ruby-list:17601]だそうなのでちょっと困る,というですよね.
(上記が真なら)メインスレッド以外ではError::EPIPEをrescueできないし,
メインスレッドでもSIGPIPEが飛んでくることがある,と.

> ですから、基本的にSIGPIPEによる処理とEPIPEによる処理に違いは
> ないと思います。

そうできると美しい,というのは理解できます.

--
NaHi, nakahiro, a.k.a. NAKAMURA, Hiroshi
http://www.sarion.com  Sarion Systems Research

In This Thread

Prev Next