diff --git a/vm_core.h b/vm_core.h index 5de066b883..4055e79d1d 100644 --- a/vm_core.h +++ b/vm_core.h @@ -1090,11 +1090,14 @@ void rb_threadptr_pending_interrupt_clear(rb_thread_t *th); void rb_threadptr_pending_interrupt_enque(rb_thread_t *th, VALUE v); int rb_threadptr_pending_interrupt_active_p(rb_thread_t *th); -#define RUBY_VM_CHECK_INTS(th) do { \ - if (UNLIKELY(RUBY_VM_INTERRUPTED_ANY(th))) { \ - rb_threadptr_execute_interrupts(th, 0); \ - } \ -} while (0) +#define RUBY_VM_CHECK_INTS(th) ruby_vm_check_ints(th) +static inline void +ruby_vm_check_ints(rb_thread_t *th) +{ + if (UNLIKELY(RUBY_VM_INTERRUPTED_ANY(th))) { + rb_threadptr_execute_interrupts(th, 0); + } +} /* tracer */ struct rb_trace_arg_struct {