From fa5de8f68d51e4fbc91190061e3ce3817bd68964 Mon Sep 17 00:00:00 2001 From: Koichi Sasada Date: Sat, 23 Dec 2023 07:46:56 +0900 Subject: MN: skip waiting on fiber schedulers If the Fiber is nonblocking mode, fiber scheduler needs to handle IO events. --- thread.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'thread.c') diff --git a/thread.c b/thread.c index da55879824..ed71102007 100644 --- a/thread.c +++ b/thread.c @@ -1691,7 +1691,10 @@ static int thread_io_wait_events(rb_thread_t *th, rb_execution_context_t *ec, int fd, int events, struct timeval *timeout, struct waiting_fd *wfd) { #if defined(USE_MN_THREADS) && USE_MN_THREADS - if (!th_has_dedicated_nt(th) && (events || timeout)) { + if (!th_has_dedicated_nt(th) && + (events || timeout) && + th->blocking // no fiber scheduler + ) { int r; rb_hrtime_t rel, *prel; -- cgit v1.2.3