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

ruby-changes:22130

From: kosaki <ko1@a...>
Date: Tue, 3 Jan 2012 09:09:32 +0900 (JST)
Subject: [ruby-changes:22130] kosaki:r34179 (ruby_1_9_3): merge revision(s) 33693:

kosaki	2012-01-03 09:09:21 +0900 (Tue, 03 Jan 2012)

  New Revision: 34179

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

  Log:
    merge revision(s) 33693:
    
    * thread_pthread.c (gvl_yield): don't prevent concurrent sched_yield().
      [Bug #5130] [ruby-core:38647]

  Modified files:
    branches/ruby_1_9_3/ChangeLog
    branches/ruby_1_9_3/thread_pthread.c
    branches/ruby_1_9_3/version.h

Index: ruby_1_9_3/ChangeLog
===================================================================
--- ruby_1_9_3/ChangeLog	(revision 34178)
+++ ruby_1_9_3/ChangeLog	(revision 34179)
@@ -1,3 +1,8 @@
+Mon Jan  2 19:08:54 2012  KOSAKI Motohiro  <kosaki.motohiro@g...>
+
+	* thread_pthread.c (gvl_yield): don't prevent concurrent sched_yield().
+	  [Bug #5130] [ruby-core:38647]
+
 Mon Jan  2 18:54:52 2012  NAKAMURA Usaku  <usa@r...>
 
 	* win32/configure.bat: disable delayed expansion of enironment variable.
Index: ruby_1_9_3/thread_pthread.c
===================================================================
--- ruby_1_9_3/thread_pthread.c	(revision 34178)
+++ ruby_1_9_3/thread_pthread.c	(revision 34179)
@@ -109,16 +109,13 @@
 	goto acquire;
     }
 
-    vm->gvl.wait_yield = 1;
-
-    if (vm->gvl.waiting > 0)
-	vm->gvl.need_yield = 1;
-
-    if (vm->gvl.need_yield) {
+    if (vm->gvl.waiting > 0) {
 	/* Wait until another thread task take GVL. */
-	while (vm->gvl.need_yield) {
+	vm->gvl.need_yield = 1;
+	vm->gvl.wait_yield = 1;
+	while (vm->gvl.need_yield)
 	    native_cond_wait(&vm->gvl.switch_cond, &vm->gvl.lock);
-	}
+	vm->gvl.wait_yield = 0;
     }
     else {
 	native_mutex_unlock(&vm->gvl.lock);
@@ -126,7 +123,6 @@
 	native_mutex_lock(&vm->gvl.lock);
     }
 
-    vm->gvl.wait_yield = 0;
     native_cond_broadcast(&vm->gvl.switch_wait_cond);
   acquire:
     gvl_acquire_common(vm);
Index: ruby_1_9_3/version.h
===================================================================
--- ruby_1_9_3/version.h	(revision 34178)
+++ ruby_1_9_3/version.h	(revision 34179)
@@ -1,10 +1,10 @@
 #define RUBY_VERSION "1.9.3"
-#define RUBY_PATCHLEVEL 7
+#define RUBY_PATCHLEVEL 8
 
-#define RUBY_RELEASE_DATE "2012-01-03"
+#define RUBY_RELEASE_DATE "2012-01-02"
 #define RUBY_RELEASE_YEAR 2012
 #define RUBY_RELEASE_MONTH 1
-#define RUBY_RELEASE_DAY 3
+#define RUBY_RELEASE_DAY 2
 
 #include "ruby/version.h"
 

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

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