Ctrl+C を押すと、例外がスローされます (常にスレッド 0 でしょうか?)。必要に応じてこれをキャッチできます。または、クリーンアップを実行してから再スローする可能性が高くなります。しかし、通常の結果は、何らかの方法でプログラムを停止させることです。
ここで、Unixkill
コマンドを使用するとします。私が理解しているように、kill
基本的には(構成可能な)Unixシグナルを指定されたプロセスに送信します。
Haskell RTS はこれにどのように応答しますか? それはどこかに文書化されていますか?送信するとCtrlSIGTERM
+C を押すのと同じ効果があると思いますが、実際にはわかりません...
(そしてもちろん、 を使用kill
して、殺害とはまったく関係のない信号を送信することもできます。繰り返しますが、 RTSは無視するか、SIGHUP
またはと言うとSIGPWR
思いますが、確かなことはわかりません。)