diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | vm_trace.c | 4 |
2 files changed, 7 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Wed Dec 19 17:54:18 2012 Masaya Tarui <[email protected]> + + * 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 <[email protected]> * 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); |