diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-11-10 23:34:03 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-11-10 23:34:03 +0000 |
commit | 6ebdf24500f845b76e42d9f2b715773ad51730d5 (patch) | |
tree | 447ab063bafa70724a437d10cdd48beb87f91095 /thread.c | |
parent | 145f07fac22726cc4d11b35047ac44853a21d27b (diff) |
* 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
Diffstat (limited to 'thread.c')
-rw-r--r-- | thread.c | 21 |
1 files changed, 11 insertions, 10 deletions
@@ -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) |