From: SASADA Koichi Date: 2007-07-02T22:17:39+09:00 Subject: [ruby-dev:31111] Re: $&;[] dumps core  ささだです。 Tanaka Akira wrote: >> (1) bootstraptest/ > >> ・テストごとに別プロセスで実行するので、大きなプログラムでしか >> 再現しないバグ(GCのバグなど)は発見できないことが多い >> ・テストごとに別プロセスで実行するので、状態を変にするプログラ >> ムのテストには適している(Kernelのメソッド再定義実験とか) > > そのせいか、^C 一発で止まらないのですが、そんなことはありませんか?  止まりません。  で、これは誰も返事をしていない [ruby-dev:31007] の話だとは思 いますが、これはどうするべきなんでしょうか。私は、1.8 がこうい う挙動なので、こういうもんだと思っていました。どうすると幸せな 人が増えるのかは、経験不足でわかりません。実装についてもよくわ かりません。  これだけだとなんなので、いくつかの処理系だとどうなるか調べて みました。 ruby 1.8: ruby -e 'loop{p system("sleep 1")}' -> ^C すると false を返す。止まらない。   ちなみに、killall だけでは止まらない。   -KILL 付けないといけなかった。 perl: perl -e 'while(1){print system("sleep 1")}' -> ^C すると 2 を返す。止まらない。killall で止まった。 python: python -c ' import os while True: a = os.system("sleep 1") print a ' -> Perl と一緒。 gauche: echo ' (use gauche.process) (dotimes (i 100000) (let ((r (run-process "sleep" "1" :wait #t))) (print r))) ' | gosh -> # # # <- ここで ^C *** UNHANDLED-SIGNAL-ERROR: unhandled signal 2 (SIGINT) Stack Trace: gosh プロセスが終了 sh: $ while true; do sleep 1; echo $?; done -> ^C で何も言わずに終了 -- // SASADA Koichi at atdot dot net