ruby-changes:15154
From: mame <ko1@a...>
Date: Wed, 24 Mar 2010 23:47:24 +0900 (JST)
Subject: [ruby-changes:15154] Ruby:r27033 (trunk): * thread.c (thread_create_core): let new thread inherit RUBY_EVENT_VM
mame 2010-03-24 23:47:00 +0900 (Wed, 24 Mar 2010) New Revision: 27033 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=27033 Log: * thread.c (thread_create_core): let new thread inherit RUBY_EVENT_VM of event_flags. [ruby-core:25191] * thread.c (rb_threadptr_exec_event_hooks): delete RUBY_EVENT_VM if all event_hooks are removed. Modified files: trunk/ChangeLog trunk/thread.c Index: ChangeLog =================================================================== --- ChangeLog (revision 27032) +++ ChangeLog (revision 27033) @@ -1,3 +1,11 @@ +Wed Mar 24 23:43:40 2010 Yusuke Endoh <mame@t...> + + * thread.c (thread_create_core): let new thread inherit RUBY_EVENT_VM + of event_flags. [ruby-core:25191] + + * thread.c (rb_threadptr_exec_event_hooks): delete RUBY_EVENT_VM if + all event_hooks are removed. + Wed Mar 24 22:58:02 2010 Yusuke Endoh <mame@t...> * configure.in: revert the previous commit, which seemed to break make Index: thread.c =================================================================== --- thread.c (revision 27032) +++ thread.c (revision 27033) @@ -549,6 +549,9 @@ th->thgroup = GET_THREAD()->thgroup; native_mutex_initialize(&th->interrupt_lock); + if (GET_VM()->event_hooks != NULL) + th->event_flags |= RUBY_EVENT_VM; + /* kick thread */ st_insert(th->vm->living_threads, thval, (st_data_t) th->thread_id); err = native_thread_create(th); @@ -3769,7 +3772,12 @@ exec_event_hooks(th->event_hooks, flag, self, id, klass); } if (wait_event & RUBY_EVENT_VM) { - exec_event_hooks(th->vm->event_hooks, flag, self, id, klass); + if (th->vm->event_hooks == NULL) { + th->event_flags &= (~RUBY_EVENT_VM); + } + else { + exec_event_hooks(th->vm->event_hooks, flag, self, id, klass); + } } th->errinfo = errinfo; } -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/