From afd1a64cd6ee73e69744a09242cc079b3f1f5170 Mon Sep 17 00:00:00 2001 From: kosaki Date: Mon, 13 Jun 2011 15:06:30 +0000 Subject: * thread.c (rb_thread_schedule_rec): call gvl_yield() unconditionally. * thread_pthread.c: remove HAVE_GVL_YIELD macro. * thread_win32.c (gvl_yield): new. this fallback logic was moved from rb_thread_schedule_rec(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32069 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- thread.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) (limited to 'thread.c') diff --git a/thread.c b/thread.c index 2a6ba6d637..914b686f00 100644 --- a/thread.c +++ b/thread.c @@ -1025,18 +1025,8 @@ rb_thread_schedule_rec(int sched_depth, unsigned long limits_us) RB_GC_SAVE_MACHINE_CONTEXT(th); -#if HAVE_GVL_YIELD - { - if (th->running_time_us >= limits_us) - gvl_yield(th->vm, th); - } -#else - gvl_release(th->vm); - { - native_thread_yield(); - } - gvl_acquire(th->vm, th); -#endif + if (th->running_time_us >= limits_us) + gvl_yield(th->vm, th); rb_thread_set_current(th); thread_debug("rb_thread_schedule/switch done\n"); -- cgit v1.2.3