summaryrefslogtreecommitdiff
path: root/scheduler.c
diff options
context:
space:
mode:
authorSamuel Williams <samuel.williams@oriontransfer.co.nz>2021-02-11 19:17:54 +1300
committerSamuel Williams <samuel.williams@oriontransfer.co.nz>2021-03-30 18:38:42 +1300
commit4c53dc970bf82e4c5fb237be4b2404bcb07496d2 (patch)
tree8df121b7255da00297a2dbd9c126302abcade685 /scheduler.c
parent93753d7ee738475f7445e5cfc405756a4fb7f850 (diff)
downloadruby-4c53dc970bf82e4c5fb237be4b2404bcb07496d2.tar.gz
Add hook for `Timeout.timeout`.
Diffstat (limited to 'scheduler.c')
-rw-r--r--scheduler.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/scheduler.c b/scheduler.c
index f2b1b00fa1..3403eb1801 100644
--- a/scheduler.c
+++ b/scheduler.c
@@ -17,6 +17,7 @@ static ID id_close;
static ID id_block;
static ID id_unblock;
+static ID id_timeout_raise;
static ID id_kernel_sleep;
static ID id_process_wait;
@@ -32,6 +33,7 @@ Init_Fiber_Scheduler(void)
id_block = rb_intern_const("block");
id_unblock = rb_intern_const("unblock");
+ id_timeout_raise = rb_intern_const("timeout_raise");
id_kernel_sleep = rb_intern_const("kernel_sleep");
id_process_wait = rb_intern_const("process_wait");
@@ -109,6 +111,12 @@ rb_fiber_scheduler_make_timeout(struct timeval *timeout)
}
VALUE
+rb_fiber_scheduler_timeout_raise(VALUE scheduler, VALUE timeout)
+{
+ return rb_funcall(scheduler, id_timeout_raise, 1, timeout);
+}
+
+VALUE
rb_fiber_scheduler_kernel_sleep(VALUE scheduler, VALUE timeout)
{
return rb_funcall(scheduler, id_kernel_sleep, 1, timeout);