static void rb_fiber_terminate(rb_fiber_t *fib) { VALUE value = fib->cont.value; fib->status = TERMINATED; rb_fiber_transfer(return_fiber(), 1, &value); }
static void rb_fiber_terminate(rb_context_t *cont) { VALUE value = cont->value; cont->alive = Qfalse; rb_fiber_transfer(return_fiber(), 1, &value); }
VALUE rb_fiber_yield(int argc, VALUE *argv) { return rb_fiber_transfer(return_fiber(), argc, argv); }