渡辺哲也です。

私のところだけで起きている現象ですが、下記のパッチで
動作するようになりました。よかったら入れておいていた
だけますか?

とりあえず volatile を入れただけです。

後半にもう一つ、おまけがついていますが、この処理が間
違っていたら戻してください。すいません。

手元で「現象が起きる」ので、とりあえずいろいろ試した
結果、現象がでなくなったということで、深くは考えてい
ません。良し悪しはまつもとさんお願いします。

------------------------------
--- gc.c.org	Fri Aug 13 14:45:05 1999
+++ gc.c	Thu Aug 19 10:50:43 1999
@@ -890,7 +890,7 @@
 rb_gc()
 {
     struct gc_list *list;
-    struct FRAME *frame;
+    struct FRAME * volatile frame;
     jmp_buf save_regs_gc_mark;
     VALUE stack_end;
 
@@ -907,8 +907,6 @@
     /* mark frame stack */
     for (frame = ruby_frame; frame; frame = frame->prev) {
 	rb_gc_mark_frame(frame); 
-    }
-    for (frame = ruby_frame; frame; frame = frame->prev) {
 	if (frame->tmp) {
 	    struct FRAME *tmp = frame->tmp;
 	    while (tmp) {
------------------------------

--
WATANABE Tetsuya
 e-mail: Tetsuya_WATANABE / hp.com
         tetsu / jpn.hp.com