From 54db64f7a59f1f14b280a80491336a128f792b42 Mon Sep 17 00:00:00 2001 From: Alan Wu Date: Thu, 26 Aug 2021 14:58:13 -0400 Subject: filter out internal events. add comments. reorder --- vm_trace.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'vm_trace.c') diff --git a/vm_trace.c b/vm_trace.c index d9f0cce563..c410b709b5 100644 --- a/vm_trace.c +++ b/vm_trace.c @@ -98,11 +98,16 @@ update_global_event_hook(rb_event_flag_t vm_events) rb_clear_attr_ccs(); } - yjit_tracing_invalidate_all(); - ruby_vm_event_flags = vm_events; ruby_vm_event_enabled_global_flags |= vm_events; rb_objspace_set_event_hook(vm_events); + + if (vm_events & RUBY_EVENT_TRACEPOINT_ALL) { + // Invalidate all code if listening for any TracePoint event. + // Internal events fire inside C routines so don't need special handling. + // Do this last so other ractors see updated vm events when they wake up. + yjit_tracing_invalidate_all(); + } } /* add/remove hooks */ -- cgit v1.2.3