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

ruby-changes:16103

From: kosaki <ko1@a...>
Date: Fri, 28 May 2010 21:28:45 +0900 (JST)
Subject: [ruby-changes:16103] Ruby:r28055 (trunk): * thread.c (blocking_region_begin): avoid RUBY_VM_CHECK_INTS()

kosaki	2010-05-28 21:28:32 +0900 (Fri, 28 May 2010)

  New Revision: 28055

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

  Log:
    * thread.c (blocking_region_begin): avoid RUBY_VM_CHECK_INTS()
    call during GVL state transition. [Bug#3354] [ruby-dev:41435]

  Modified files:
    trunk/ChangeLog
    trunk/thread.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 28054)
+++ ChangeLog	(revision 28055)
@@ -1,3 +1,8 @@
+Fri May 28 20:35:21 2010  KOSAKI Motohiro  <kosaki.motohiro@g...>
+
+	* thread.c (blocking_region_begin): avoid RUBY_VM_CHECK_INTS()
+	call during GVL state transition. [Bug#3354] [ruby-dev:41435]
+
 Fri May 28 19:37:47 2010  Narihiro Nakamura  <authorNari@g...>
 
 	* gc.c : use simple lazy sweep algorithm for response performance
Index: thread.c
===================================================================
--- thread.c	(revision 28054)
+++ thread.c	(revision 28055)
@@ -125,8 +125,8 @@
 #define blocking_region_begin(th, region, func, arg) \
   do { \
     (region)->prev_status = (th)->status; \
+    set_unblock_function((th), (func), (arg), &(region)->oldubf); \
     (th)->blocking_region_buffer = (region); \
-    set_unblock_function((th), (func), (arg), &(region)->oldubf); \
     (th)->status = THREAD_STOPPED; \
     thread_debug("enter blocking region (%p)\n", (void *)(th)); \
     RB_GC_SAVE_MACHINE_CONTEXT(th); \

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

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