diff options
author | Samuel Williams <samuel.williams@oriontransfer.co.nz> | 2021-02-11 19:17:54 +1300 |
---|---|---|
committer | Samuel Williams <samuel.williams@oriontransfer.co.nz> | 2021-03-30 18:38:42 +1300 |
commit | 4c53dc970bf82e4c5fb237be4b2404bcb07496d2 (patch) | |
tree | 8df121b7255da00297a2dbd9c126302abcade685 /scheduler.c | |
parent | 93753d7ee738475f7445e5cfc405756a4fb7f850 (diff) |
Add hook for `Timeout.timeout`.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/4173
Diffstat (limited to 'scheduler.c')
-rw-r--r-- | scheduler.c | 8 |
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); |