diff --git a/ChangeLog b/ChangeLog index 250aa589d9..66b253a7e6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Tue Jun 26 03:46:08 2007 Koichi Sasada + + * cont.c (rb_fiber_s_new): fix to clear rb_thread_t#tag. + Tue Jun 26 03:38:31 2007 Koichi Sasada * cont.c (rb_fiber_s_new), yarvcore.c (th_init2): fix to clear diff --git a/cont.c b/cont.c index 022df065a7..f75ddf1602 100644 --- a/cont.c +++ b/cont.c @@ -489,6 +489,7 @@ rb_fiber_s_new(VALUE self) th->cfp->iseq = 0; th->cfp->proc = 0; th->cfp->block_iseq = 0; + th->tag = 0; th->first_proc = rb_block_proc(); @@ -506,10 +507,8 @@ rb_fiber_terminate(rb_context_t *cont) VALUE value = cont->value; GetContPtr(cont->prev, prev_cont); - cont->alive = Qfalse; - if (prev_cont->alive == Qfalse) { rb_fiber_yield(1, &value, GET_THREAD()->root_fiber); }