From ad278cc0f126e987a458a2f7d6f72636b95d9e3a Mon Sep 17 00:00:00 2001 From: ko1 Date: Fri, 13 Feb 2009 06:04:25 +0000 Subject: * cont.c (rb_fiber_alive_p): fix to return true instead of 1. [ruby-dev:37991] * test/ruby/test_fiber.rb: add a test for Fiber#alive? git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@22274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 7 +++++++ cont.c | 2 +- test/ruby/test_fiber.rb | 9 +++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 8bec936b1..e296dea3d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Fri Feb 13 15:01:40 2009 Koichi Sasada + + * cont.c (rb_fiber_alive_p): fix to return true instead of 1. + [ruby-dev:37991] + + * test/ruby/test_fiber.rb: add a test for Fiber#alive? + Fri Feb 13 09:43:19 2009 Nobuyoshi Nakada * configure.in (ac_cv_func_flock): using flock defined in diff --git a/cont.c b/cont.c index 7d1392e7d..43237560c 100644 --- a/cont.c +++ b/cont.c @@ -933,7 +933,7 @@ rb_fiber_alive_p(VALUE fibval) { rb_fiber_t *fib; GetFiberPtr(fibval, fib); - return fib->status != TERMINATED; + return fib->status != TERMINATED ? Qtrue : Qfalse; } /* diff --git a/test/ruby/test_fiber.rb b/test/ruby/test_fiber.rb index bf56b2b6d..536d358dd 100644 --- a/test/ruby/test_fiber.rb +++ b/test/ruby/test_fiber.rb @@ -164,5 +164,14 @@ class TestFiber < Test::Unit::TestCase assert_equal(nil, Thread.current[:v]); fb.resume assert_equal(nil, Thread.current[:v]); end + + def test_alive + fib = Fiber.new{Fiber.yield} + assert_equal(true, fib.alive?) + fib.resume + assert_equal(true, fib.alive?) + fib.resume + assert_equal(false, fib.alive?) + end end -- cgit