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

From: "Takashima, Makoto" <tksmmkt@...>
Date: 1999-10-19 17:01:28 UTC
List: ruby-dev #8064
高島です。

On Tue, 19 Oct 1999 14:13:22 +0900
matz@netlab.co.jp (Yukihiro Matsumoto) wrote:

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

もしかして、SIGPIPEのハンドラをどうこうすると言っていたのは、
write()を呼び出す部分だけでの事だったのでしょうか?

# rubyのソースを全然確認してないもので・・・

もし、そういうことであればシグナルは基本的に非同期ですから
予期しないタイミングでSIGPIPEを受けても不思議ではないと思い
ます。

私がSIGPIPEを無視すれば問題無いはずと言っていたのは、
SIGPIPEを常に無視する(main()の先頭でSIG_IGNに設定する)
と言っているつもりでした。であれば、SIGPIPEが発生することは
絶対に無いはずですし、相手がソケットやパイプをクローズした後
に write()すれば確実にEPIPEで検出できると思うのです。

もしかしたら、カーネルの実装やバッファリング等の影響でエラー
検出のタイミングがずれることがあるのかもしれませんが、最終的
には write()でエラーが検出されるわけですから、見た目は変わり
ありませんし、全く問題無いと思います。

# 別に理想論を言っているつもりはないのですが、これが単なる理
# 想論に聞こえるようなOSがあるのでしたら、そのようなOSを私は
# 使いたくありませんね。(^^)


--
高島真 (tksmmkt@coral.ocn.ne.jp)

In This Thread