From: cyross@... Date: 2009-02-13T14:40:54+09:00 Subject: [ruby-dev:37991] Fiber#alive?メソッドの戻り値がboolになりません こんにちわ、サイロスです。 Ruby1.9.1の拡張ライブラリの件で恐縮ですが、Fiber拡張ライブラリで問題と見 受けられる箇所を見つけましたのでご報告いたします。 Fiber#alive?メソッドで、真を返すときに、trueではなく数値の0を返していま す(偽のときはfalseを返しています)。 問題を再現したスクリプトを添付いたします。 (ここから) require 'fiber' fr = Fiber.new{ "a" } a = fr.alive? p a # => 0 p a.class # => Fixnum fr.resume a = fr.alive? p a # => false p a.class # => FalseClass (ここまで) MSYS上で独自にビルドしたRuby1.9.1、artonさんによるmswin32版バイナリで確 認いたしました。 ソース(cont.c)を見た限り、918行目の返却値をそのまま返していることが原因 と考えられます。 return fib->status != TERMINATED; 以上、ご報告まで。 よろしくお願い致します。 <=====> サイロス誠 cyross@po.twin.ne.jp http://www.twin.ne.jp/~cyross/Miyako http://d.hatena.ne.jp/cyross/ <=====>