diff --git a/cont.c b/cont.c index ad277bd..e54d158 100644 --- a/cont.c +++ b/cont.c @@ -1438,6 +1438,7 @@ Init_Cont(void) rb_define_singleton_method(rb_cFiber, "yield", rb_fiber_s_yield, -1); rb_define_method(rb_cFiber, "initialize", rb_fiber_init, 0); rb_define_method(rb_cFiber, "resume", rb_fiber_m_resume, -1); + rb_define_method(rb_cFiber, "call", rb_fiber_m_resume, -1); } #if defined __GNUC__ && __GNUC__ >= 4 diff --git a/test/ruby/test_fiber.rb b/test/ruby/test_fiber.rb index ec64f98..b37de27 100644 --- a/test/ruby/test_fiber.rb +++ b/test/ruby/test_fiber.rb @@ -4,6 +4,10 @@ require 'continuation' require_relative './envutil' class TestFiber < Test::Unit::TestCase + def test_call + Fiber.new { |e| assert_equal(:ok1, e) }.call(:ok1) + end + def test_normal f = Fiber.current assert_equal(:ok2,