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/