From: matz@... (Yukihiro Matsumoto) Date: 1999-10-09T18:15:48+09:00 Subject: [ruby-list:17569] Re: Exception.html & Errno.html for ruby-man-1.4.2-jp まつもと ゆきひろです In message "[ruby-list:17562] Re: Exception.html & Errno.html for ruby-man-1.4.2-jp" on 99/10/09, nobu.nakada@nifty.ne.jp writes: |内部的にこんな感じにしてやれば、あとは各 Exception の中に閉じ込め |るというか、Exception オブジェクトのライフスパンで制御することが |できそうな気がするのですが。 うーん、そうなんでしょうか。Rubyの例外とUNIXのsignalは違うも ので、signalは非同期で来るわけですよね。ハンドラがある間に来 ることを期待できないと思います。本当はwriteが失敗してくれて、 SIGPIPEなんてものはないのがありがたいんですが、どうもそうは いかないらしい。 | もともと handler が動いている間は signal はブロックされるという |のが前提じゃないでしょうか。 例外ハンドラはシグナルハンドラとイコールではないんで(実際は 例外ハンドラ⊃シグナルハンドラ)、rescueの間signalをブロック するってのは受け入れられないように思います。 いつくるか分からないからsignalなわけで(SIGPIPEはなんとなく同 期っぽいからややこしいんですが)、これをrescueで完全に対応し ようってのが無理がある話ではないのかなあって思います。 ちゅーわけで、割込みとしての例外変換と、ハンドラとしてのtrap を使い分けてっていう現状は妥協案としてはわりとまともかなって 思ってます。同期っぽくないSIGPIPE以外のシグナルについてはそー ゆー疑問はおきませんものね。 まつもと ゆきひろ /:|)