From: Daisuke Aoki Date: 2000-11-14T23:37:03+09:00 Subject: [ruby-dev:11513] Re: SIGINT on windows nobu.nakada@nifty.ne.jp wrote: > しかし、-MT だと VC のランタイムの中でも使いまくってるという > か、シグナルハンドラを取り出す辺りでもすでに使ってますが、-MT > でコンパイルしたプログラムは Win95 だと signal() 使えないんでしょ > うか。なにか別のことを見落としてるような気がしますが、分かりま > せん。 [ruby-dev:11498] のパッチで問題は生じませんでした。ということで、 Windows 95 での問題は解決されたと。 で、-MT でコンパイルしても Windows 95 でも signal() は使えます。 以前、signal の部分を _beginthreadex() 使って処理する風にしたりして 実験したときに確認しています。 CTRL-C or BREAK で signal handler は非メインスレッドで呼ばれて、 raise() とかだとメインスレッドから呼ばれて、-MT 付けると TLS で スレッドごとに区別される一部のグローバル変数が出てくることぐらいしか 違わないのでは( CreateThread() ではなくて _beginthread(ex)() 使った ケースだと)。signal handler() が呼ばれる非メインスレッドのスレッドで その辺はどうなるかは知りませんが。 -- 青木大輔