From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?= ) Date: 1998-03-16T18:35:54+09:00 Subject: [ruby-dev:1807] Re: trap and throw problem けいじゅ@日本ラショナルソフトウェアです. In [ruby-dev :01800 ] the message: "[ruby-dev:1800] Re: trap and throw problem ", on Mar/16 12:26(JST) Yukihiro Matsumoto writes: >まつもと ゆきひろです >です.もっともDebian/hammなのでlibc6を使ってますから,そっち >の違いの方が大きいでしょうが. なるほど... >んで,ソースをみる限り,IO#getsはgetc(3)を使って1文字ずつ読 >み込んで来てますから,同じ文字列をもう一度返すと言うのはちょっ >と想像できない挙動ですね.なぜなんだろう? いろいろ試したんですが, この問題はtrapしてから, 正常にハンドラを抜ける までならず発生する見たいです. trap("SIGINT") { print "trap!!\n" print ":", gets(), "\n" # throw :EXIT } シグナルハンドラ中でgets()すると一回前のgets()の値がリターンされます (;_; # ちなみにreadlineで同じことをやってみましたが, この問題にかんしては正 # 常に動作しているみたいです. >というわけで[ruby-dev:1797]をお試し下さい.getsの問題は解決 >しないだろうけど. trapのマスクは解決したみたいです. でも, getsの問題は解決していませんね (;_; どうしたもんだろうなあ... __ ................................石塚 圭樹@日本ラショナルソフトェア... ----------------------------------->> e-mail: keiju@rational.com <<---