[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]