aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-05-28 12:28:32 +0000
committerkosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-05-28 12:28:32 +0000
commit827a17bdbbadc27ddcb602a761e4af1295ba60e4 (patch)
treeac6116990b800cea8027a15679c5ce7195fc48e7
parenta51acf36898f819d5da89165d394d638e505d78b (diff)
downloadruby-827a17bdbbadc27ddcb602a761e4af1295ba60e4.tar.gz
* thread.c (blocking_region_begin): avoid RUBY_VM_CHECK_INTS()
call during GVL state transition. [Bug#3354] [ruby-dev:41435] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28055 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--thread.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 67f2c22721..db84bec3a9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Fri May 28 20:35:21 2010 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
+
+ * 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@gmail.com>
* gc.c : use simple lazy sweep algorithm for response performance
diff --git a/thread.c b/thread.c
index 1956721da7..dcf7a2e838 100644
--- a/thread.c
+++ b/thread.c
@@ -125,8 +125,8 @@ static inline void blocking_region_end(rb_thread_t *th, struct rb_blocking_regio
#define blocking_region_begin(th, region, func, arg) \
do { \
(region)->prev_status = (th)->status; \
- (th)->blocking_region_buffer = (region); \
set_unblock_function((th), (func), (arg), &(region)->oldubf); \
+ (th)->blocking_region_buffer = (region); \
(th)->status = THREAD_STOPPED; \
thread_debug("enter blocking region (%p)\n", (void *)(th)); \
RB_GC_SAVE_MACHINE_CONTEXT(th); \