ruby-changes:13826
From: wanabe <ko1@a...>
Date: Mon, 2 Nov 2009 10:04:46 +0900 (JST)
Subject: [ruby-changes:13826] Ruby:r25625 (trunk): revert r25623
wanabe 2009-11-02 10:04:31 +0900 (Mon, 02 Nov 2009) New Revision: 25625 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=25625 Log: revert r25623 Modified files: trunk/ChangeLog trunk/cont.c Index: ChangeLog =================================================================== --- ChangeLog (revision 25624) +++ ChangeLog (revision 25625) @@ -1,14 +1,3 @@ -Mon Nov 2 08:17:31 2009 wanabe <s.wanabe@g...> - - * cont.c (fiber_free): don't free unallocated local_storage. see #1325. - - * cont.c (cont_init): clear local_storage not to use current thread's. - - * cont.c (fiber_t_alloc, root_fiber_alloc): link itself always for - a case that fiber_link_remove() is called before fiber_link_join(). - - * cont.c (fiber_init): don't join half-baked fiber. - Sun Nov 1 20:16:03 2009 NARUSE, Yui <naruse@r...> * ext/bigdecimal/bigdecimal.c: fixed rdoc. [ruby-core:26457] Index: cont.c =================================================================== --- cont.c (revision 25624) +++ cont.c (revision 25625) @@ -198,8 +198,7 @@ if (ptr) { rb_fiber_t *fib = ptr; - if (fib->cont.type != ROOT_FIBER_CONTEXT && - fib->cont.saved_thread.local_storage) { + if (fib->cont.type != ROOT_FIBER_CONTEXT) { st_free_table(fib->cont.saved_thread.local_storage); } fiber_link_remove(fib); @@ -284,7 +283,6 @@ { /* save thread context */ cont->saved_thread = *th; - cont->saved_thread.local_storage = 0; } static rb_context_t * @@ -733,7 +731,6 @@ cont_init(&fib->cont, th); fib->prev = Qnil; fib->status = CREATED; - fib->prev_fiber = fib->next_fiber = fib; DATA_PTR(fibval) = fib; @@ -747,6 +744,8 @@ rb_context_t *cont = &fib->cont; rb_thread_t *th = &cont->saved_thread; + fiber_link_join(fib); + /* initialize cont */ cont->vm_stack = 0; @@ -754,8 +753,6 @@ th->stack_size = FIBER_VM_STACK_SIZE; th->stack = ALLOC_N(VALUE, th->stack_size); - fiber_link_join(fib); - th->cfp = (void *)(th->stack + th->stack_size); th->cfp--; th->cfp->pc = 0; @@ -878,6 +875,7 @@ /* no need to allocate vm stack */ fib = fiber_t_alloc(fiber_alloc(rb_cFiber)); fib->cont.type = ROOT_FIBER_CONTEXT; + fib->prev_fiber = fib->next_fiber = fib; return fib; } -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/