Tietew です。 要望: exit を呼ばない ruby_stop が欲しい 理由: 組み込み Ruby で,(OSの)スレッドを立ち上げてそのスレッド内で Ruby を 動かしているのですが (他スレッドからは一切 Ruby へのアクセスはない), そのスレッドの終了時に ruby_stop すると exit されてしまうので具合が 悪い(その後メインのスレッドでいろいろなクリーンアップ処理が待ってい る)のです。 また ruby_finalize のみでは Ruby のスレッドのクリーンアップ処理がな いのでこれもまた具合が悪い。 今のところ eval.c:1172 の exit(ex) をコメントアウトしてるのですが, あまりRubyのソースに手を入れたくないので,採用していただけないでしょ うか。 次のパッチを提案します: Index: eval.c =================================================================== RCS file: /src/ruby/eval.c,v retrieving revision 1.137.2.52 diff -u -1 -r1.137.2.52 eval.c --- eval.c 2001/07/19 08:27:53 1.137.2.52 +++ eval.c 2001/07/19 20:55:16 @@ -1151,3 +1151,3 @@ -void +int ruby_stop(ex) @@ -1171,3 +1171,3 @@ ruby_finalize(); - exit(ex); + return ex; } @@ -1193,3 +1193,4 @@ if (state && !ex) ex = state; - ruby_stop(ex); + ex = ruby_stop(ex); + exit(ex); } Index: intern.h =================================================================== RCS file: /src/ruby/intern.h,v retrieving revision 1.35.2.5 diff -u -1 -r1.35.2.5 intern.h --- intern.h 2001/07/19 07:59:48 1.35.2.5 +++ intern.h 2001/07/19 20:55:16 @@ -150,3 +150,3 @@ void ruby_finalize _((void)); -void ruby_stop _((int)); +int ruby_stop _((int)); void rb_gc_mark_threads _((void)); ―[ Tietew ]―――――――――――――――――――――――――――― メ : tietew / tietew.net / tietew / raug.net / tietew / masuclub.net ホペ: http://www.tietew.net/ Tietew Windows Lab. http://www.masuclub.net/ 鱒倶楽部 指紋: 26CB 71BB B595 09C4 0153 81C4 773C 963A D51B 8CAA