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

ruby-changes:10821

From: nobu <ko1@a...>
Date: Wed, 18 Feb 2009 10:29:24 +0900 (JST)
Subject: [ruby-changes:10821] Ruby:r22389 (trunk): * thread.c (thread_start_func_2): do not delete main thread from

nobu	2009-02-18 10:29:13 +0900 (Wed, 18 Feb 2009)

  New Revision: 22389

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=22389

  Log:
    * thread.c (thread_start_func_2): do not delete main thread from
      living_threads.  [ruby-core:19385], [ruby-core:22158]

  Modified files:
    trunk/ChangeLog
    trunk/thread.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 22388)
+++ ChangeLog	(revision 22389)
@@ -1,3 +1,8 @@
+Wed Feb 18 10:29:12 2009  Nobuyoshi Nakada  <nobu@r...>
+
+	* thread.c (thread_start_func_2): do not delete main thread from
+	  living_threads.  [ruby-core:19385], [ruby-core:22158]
+
 Wed Feb 18 01:05:05 2009  Tanaka Akira  <akr@f...>
 
 	* ext/openssl: avoid cyclic require.
Index: thread.c
===================================================================
--- thread.c	(revision 22388)
+++ thread.c	(revision 22389)
@@ -440,8 +440,10 @@
 	    th->keeping_mutexes = NULL;
 	}
 
-	/* delete self from living_threads */
-	st_delete_wrap(th->vm->living_threads, th->self);
+	/* delete self other than main thread from living_threads */
+	if (th != main_th) {
+	    st_delete_wrap(th->vm->living_threads, th->self);
+	}
 
 	/* wake up joinning threads */
 	join_th = th->join_list_head;
@@ -1026,7 +1028,7 @@
  *
  *   Safe C API:
  *     * rb_thread_interrupted() - check interrupt flag
- *     * ruby_xalloc(), ruby_xrealloc(), ruby_xfree() - 
+ *     * ruby_xalloc(), ruby_xrealloc(), ruby_xfree() -
  *         if they called without GVL, acquire GVL automatically.
  */
 VALUE
@@ -2132,7 +2134,7 @@
  * - OpenBSD 2.0 (src/sys/kern/sys_generic.c:1.4)
  *   select(2) documents how to allocate fd_set dynamically.
  *   http://www.openbsd.org/cgi-bin/man.cgi?query=select&manpath=OpenBSD+4.4
- * - HP-UX documents how to allocate fd_set dynamically. 
+ * - HP-UX documents how to allocate fd_set dynamically.
  *   http://docs.hp.com/en/B2355-60105/select.2.html
  * - Solaris 8 has select_large_fdset
  *
@@ -2718,7 +2720,7 @@
 {
     VALUE ary = rb_ary_new();
     struct thgroup_list_params param;
-    
+
     param.ary = ary;
     param.group = group;
     st_foreach(GET_THREAD()->vm->living_threads, thgroup_list_i, (st_data_t) & param);
@@ -3671,7 +3673,7 @@
 call_trace_func(rb_event_flag_t event, VALUE proc, VALUE self, ID id, VALUE klass)
 {
     struct call_trace_func_args args;
-    
+
     args.event = event;
     args.proc = proc;
     args.self = self;

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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