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

ruby-changes:8606

From: nobu <ko1@a...>
Date: Sat, 8 Nov 2008 01:48:36 +0900 (JST)
Subject: [ruby-changes:8606] Ruby:r20141 (trunk): * thread_pthread.c (rb_thread_create_timer_thread): do not wait never

nobu	2008-11-08 01:48:22 +0900 (Sat, 08 Nov 2008)

  New Revision: 20141

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

  Log:
    * thread_pthread.c (rb_thread_create_timer_thread): do not wait never
      coming signal if failed to create tiemr thread.

  Modified files:
    trunk/ChangeLog
    trunk/thread_pthread.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 20140)
+++ ChangeLog	(revision 20141)
@@ -1,5 +1,8 @@
-Sat Nov  8 01:42:13 2008  Nobuyoshi Nakada  <nobu@r...>
+Sat Nov  8 01:48:07 2008  Nobuyoshi Nakada  <nobu@r...>
 
+	* thread_pthread.c (rb_thread_create_timer_thread): do not wait never
+	  coming signal if failed to create tiemr thread.
+
 	* thread_pthread.c (native_cond_timedwait): returns error code.
 
 	* thread_pthread.c (thread_timer): typo fixed.
Index: thread_pthread.c
===================================================================
--- thread_pthread.c	(revision 20140)
+++ thread_pthread.c	(revision 20141)
@@ -719,11 +719,12 @@
 #endif
 	native_mutex_lock(&timer_thread_lock);
 	err = pthread_create(&timer_thread_id, &attr, thread_timer, 0);
-	native_cond_wait(&timer_thread_cond, &timer_thread_lock);
-	native_mutex_unlock(&timer_thread_lock);
 	if (err != 0) {
+	    native_mutex_unlock(&timer_thread_lock);
 	    rb_bug("rb_thread_create_timer_thread: return non-zero (%d)", err);
 	}
+	native_cond_wait(&timer_thread_cond, &timer_thread_lock);
+	native_mutex_unlock(&timer_thread_lock);
     }
     rb_disable_interrupt(); /* only timer thread recieve signal */
 }

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

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