diff --git a/ChangeLog b/ChangeLog index b304fbdad7..4ed25a3091 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Dec 19 17:54:18 2012 Masaya Tarui + + * vm_trace.c (rb_threadptr_exec_event_hooks): get rid of race + condition. [Bug #7589] [ruby-dev:46763] + Wed Dec 19 16:30:28 2012 Eric Hodel * doc/syntax/literals.rdoc: Added 0d decimal format. Thanks Nobu! diff --git a/vm_trace.c b/vm_trace.c index 861ee0511a..9186983e28 100644 --- a/vm_trace.c +++ b/vm_trace.c @@ -291,7 +291,7 @@ rb_threadptr_exec_event_hooks(rb_trace_arg_t *targ) int state = 0; th->state = 0; - th->vm->trace_running = 1; + th->vm->trace_running++; th->trace_running = 1; { rb_hook_list_t *list; @@ -313,7 +313,7 @@ rb_threadptr_exec_event_hooks(rb_trace_arg_t *targ) } terminate: th->trace_running = 0; - th->vm->trace_running = vm_tracing; + th->vm->trace_running--; if (state) { TH_JUMP_TAG(th, state);