From 0c9c6efc20dd2fefbebb8a6a0d39952ffd425e33 Mon Sep 17 00:00:00 2001 From: Alan Wu Date: Mon, 9 Dec 2024 15:48:39 -0500 Subject: [PATCH] Add missing fiber nil check to avoid slow rb_check_funcall() Check for nil like other callers of rb_fiber_scheduler_current(). --- process.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/process.c b/process.c index ad81c2d80f..786ac6ca24 100644 --- a/process.c +++ b/process.c @@ -1200,8 +1200,10 @@ rb_process_status_wait(rb_pid_t pid, int flags) // We only enter the scheduler if we are "blocking": if (!(flags & WNOHANG)) { VALUE scheduler = rb_fiber_scheduler_current(); - VALUE result = rb_fiber_scheduler_process_wait(scheduler, pid, flags); - if (!UNDEF_P(result)) return result; + if (scheduler != Qnil) { + VALUE result = rb_fiber_scheduler_process_wait(scheduler, pid, flags); + if (!UNDEF_P(result)) return result; + } } struct waitpid_state waitpid_state;