From: matz@... (Yukihiro Matsumoto) Date: 1999-10-01T15:40:30+09:00 Subject: [ruby-list:17302] Re: Thread について まつもと ゆきひろです In message "[ruby-list:17297] Thread について" on 99/10/01, kkubota@18software.co.jp writes: |変更後のプログラムを動作させてみると、元のサンプルプログラムで |「thread 1」と「thread 2」が混ざって表示されていたのが、「thread1」 |の表示を繰り返す無限ループ(C拡張モジュールのMOD::test_loop) |から抜けきれなくなってしまいました。 Cレベルではコンテキスト切替えが起きないからですね。 # これは仕様です。 |拡張モジュールMOD::test_loop 側で無限ループを使用したまま、 |元のサンプルと同じように、「thread 1」と「thread 2」を混ざって |表示させるいい方法はありませんか? こうしてください。 |<C拡張モジュール MOD::test_loop> #include "rubysig.h" | 1 while(1){ | 2 printf("thread 1\n"); CHECK_INTS; | 3 } |------------------------------ しかし、明示的に制御を渡す関数があってしかるべきでしょうね。 1.5では追加しよう。