イマイチ自信がないのですが,自分自身を mark するっておかしい気がします. というわけで,次のような変更はどうでしょうか. Index: cont.c =================================================================== --- cont.c (revision 33272) +++ cont.c (working copy) @@ -138,7 +138,7 @@ if (ptr) { rb_context_t *cont = ptr; rb_gc_mark(cont->value); - rb_thread_mark(&cont->saved_thread); + rb_gc_mark(cont->saved_thread->self); if (cont->vm_stack) { #ifdef CAPTURE_JUST_VALID_VM_STACK (2011/10/01 10:41), Kazuki Tsujimoto wrote: > RUBY_MARK_UNLESS_NULL(th->first_proc); > if (th->first_proc) RUBY_MARK_UNLESS_NULL(th->first_args); > > + RUBY_MARK_UNLESS_NULL(th->self); > RUBY_MARK_UNLESS_NULL(th->thgroup); > RUBY_MARK_UNLESS_NULL(th->value); > RUBY_MARK_UNLESS_NULL(th->errinfo); > =end > -- // SASADA Koichi at atdot dot net