aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-11-10 23:34:03 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-11-10 23:34:03 +0000
commit6ebdf24500f845b76e42d9f2b715773ad51730d5 (patch)
tree447ab063bafa70724a437d10cdd48beb87f91095
parent145f07fac22726cc4d11b35047ac44853a21d27b (diff)
downloadruby-6ebdf24500f845b76e42d9f2b715773ad51730d5.tar.gz
* thread.c (blocking_region_begin): define before BLOCKING_REGION.
reported by Luis Lavena. [ruby-core:26670] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25713 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--thread.c21
2 files changed, 16 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 56086cd409..16d68e2f84 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Nov 11 08:32:45 2009 Tanaka Akira <akr@fsij.org>
+
+ * thread.c (blocking_region_begin): define before BLOCKING_REGION.
+ reported by Luis Lavena. [ruby-core:26670]
+
Wed Nov 11 08:22:19 2009 Tanaka Akira <akr@fsij.org>
* util.c (ruby_strtod): use dval() consistently.
diff --git a/thread.c b/thread.c
index 895bc77795..11d3ed6335 100644
--- a/thread.c
+++ b/thread.c
@@ -122,6 +122,17 @@ static inline void blocking_region_end(rb_thread_t *th, struct rb_blocking_regio
GVL_UNLOCK_END(); \
} while(0);
+#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)->status = THREAD_STOPPED; \
+ thread_debug("enter blocking region (%p)\n", (void *)(th)); \
+ RB_GC_SAVE_MACHINE_CONTEXT(th); \
+ native_mutex_unlock(&(th)->vm->global_vm_lock); \
+ } while (0)
+
#define BLOCKING_REGION(exec, ubf, ubfarg) do { \
rb_thread_t *__th = GET_THREAD(); \
struct rb_blocking_region_buffer __region; \
@@ -987,16 +998,6 @@ rb_thread_schedule(void)
}
/* blocking region */
-#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)->status = THREAD_STOPPED; \
- thread_debug("enter blocking region (%p)\n", (void *)(th)); \
- RB_GC_SAVE_MACHINE_CONTEXT(th); \
- native_mutex_unlock(&(th)->vm->global_vm_lock); \
- } while (0)
static inline void
blocking_region_end(rb_thread_t *th, struct rb_blocking_region_buffer *region)