aboutsummaryrefslogtreecommitdiffstats
path: root/thread_pthread.c
diff options
context:
space:
mode:
Diffstat (limited to 'thread_pthread.c')
-rw-r--r--thread_pthread.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/thread_pthread.c b/thread_pthread.c
index d8d3184c62..499da0b9ca 100644
--- a/thread_pthread.c
+++ b/thread_pthread.c
@@ -1542,6 +1542,11 @@ rb_thread_wakeup_timer_thread(int sig)
if (ec) {
RUBY_VM_SET_TRAP_INTERRUPT(ec);
ubf_timer_arm(current);
+
+ /* some ubfs can interrupt single-threaded process directly */
+ if (vm->ubf_async_safe && mth->unblock.func) {
+ (mth->unblock.func)(mth->unblock.arg);
+ }
}
}
}