diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-02-08 12:06:08 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-02-08 12:06:08 +0000 |
commit | eb64061a384db53ca69dfdb1ab184a3b88d68f2d (patch) | |
tree | c0e45540b831e747f10544c63cc56e57d89b76ca /thread.c | |
parent | ae317b518c4dcbcbf0ed02bb9e6cd7513f0a34fe (diff) | |
download | ruby-eb64061a384db53ca69dfdb1ab184a3b88d68f2d.tar.gz |
* thread.c (GVL_UNLOCK_RANGE): rename to BLOCKING_REGION().
* thread.c (rb_thread_run_parallel): rename to
rb_thread_blocking_region().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11663 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'thread.c')
-rw-r--r-- | thread.c | 19 |
1 files changed, 9 insertions, 10 deletions
@@ -92,7 +92,7 @@ NOINLINE(void rb_gc_save_machine_context(rb_thread_t *)); rb_thread_set_current(_th_stored); \ } while(0) -#define GVL_UNLOCK_RANGE(exec, ubf) do { \ +#define BLOCKING_REGION(exec, ubf) do { \ rb_thread_t *__th = GET_THREAD(); \ int __prev_status = __th->status; \ set_unblock_function(__th, ubf, 0); \ @@ -596,22 +596,21 @@ rb_thread_s_critical(VALUE self) return Qnil; } - VALUE -rb_thread_run_parallel(VALUE(*func)(rb_thread_t *th, void *), void *data, - rb_unblock_function_t *ubf) +rb_thread_blocking_region( + VALUE(*func)(rb_thread_t *th, void *), void *data, + rb_unblock_function_t *ubf) { VALUE val; rb_thread_t *th = GET_THREAD(); - - GVL_UNLOCK_RANGE({ + + BLOCKING_REGION({ val = func(th, data); }, ubf); - + return val; } - /* * call-seq: * Thread.pass => nil @@ -1661,7 +1660,7 @@ do_select(int n, fd_set *read, fd_set *write, fd_set *except, if (write) orig_write = *write; if (except) orig_except = *except; - GVL_UNLOCK_RANGE({ + BLOCKING_REGION({ result = select(n, read, write, except, wait); if (result < 0) lerrno = errno; }, 0); @@ -1673,7 +1672,7 @@ do_select(int n, fd_set *read, fd_set *write, fd_set *except, wait = &wait_100ms; } while (timeout == 0 || subst(timeout, &wait_100ms)); #else - GVL_UNLOCK_RANGE({ + BLOCKING_REGION({ result = select(n, read, write, except, timeout); if (result < 0) lerrno = errno; }, ubf_select); |