* 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@22274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ko1 2009-02-13 06:04:25 +00:00
Родитель 03ee5fa027
Коммит c5d7d78dae
3 изменённых файлов: 17 добавлений и 1 удалений

Просмотреть файл

@ -1,3 +1,10 @@
Fri Feb 13 15:01:40 2009 Koichi Sasada <ko1@atdot.net>
* 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 <nobu@ruby-lang.org> Fri Feb 13 09:43:19 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* configure.in (ac_cv_func_flock): using flock defined in * configure.in (ac_cv_func_flock): using flock defined in

2
cont.c
Просмотреть файл

@ -933,7 +933,7 @@ rb_fiber_alive_p(VALUE fibval)
{ {
rb_fiber_t *fib; rb_fiber_t *fib;
GetFiberPtr(fibval, fib); GetFiberPtr(fibval, fib);
return fib->status != TERMINATED; return fib->status != TERMINATED ? Qtrue : Qfalse;
} }
/* /*

Просмотреть файл

@ -164,5 +164,14 @@ class TestFiber < Test::Unit::TestCase
assert_equal(nil, Thread.current[:v]); fb.resume assert_equal(nil, Thread.current[:v]); fb.resume
assert_equal(nil, Thread.current[:v]); assert_equal(nil, Thread.current[:v]);
end 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 end