[#40961] [Bug #3137] complex.rb changes exceptions of Math — Yusuke Endoh <redmine@...>

Bug #3137: complex.rb changes exceptions of Math

15 messages 2010/04/12

[#41038] Windows と DL が使用条件の libffi — Aaron Patterson <aaron.patterson@...>

こんにちは!アーロンです。

17 messages 2010/04/22
[#41039] Re: Windows と DL が使用条件の libffi — "U.Nakamura" <usa@...> 2010/04/22

こんにちは、なかむら(う)です。

[#41040] Re: Windows と DL が使用条件の libffi — "NARUSE, Yui" <naruse@...> 2010/04/22

成瀬です。

[#41059] Re: Windows と DL が使用条件の libffi — Aaron Patterson <aaron.patterson@...> 2010/04/26

2010/4/21 NARUSE, Yui <naruse@airemix.jp>:

[#41060] Re: Windows と DL が使用条件の libffi — Yugui <yugui@...> 2010/04/26

2010/4/26 Aaron Patterson <aaron.patterson@gmail.com>:

[#41067] [Feature #3203] LazySweepGC patch — Narihiro Nakamura <redmine@...>

Feature #3203: LazySweepGC patch

15 messages 2010/04/26
[#41069] Re: [Feature #3203] LazySweepGC patch — Yusuke ENDOH <mame@...> 2010/04/27

遠藤です。

[#41104] Rails3 M17N — Yukihiro Matsumoto <matz@...>

まつもと ゆきひろです

29 messages 2010/04/30
[#41111] Re: Rails3 M17N — Urabe Shyouhei <shyouhei@...> 2010/04/30

Yukihiro Matsumoto さんは書きました:

[#41113] Re: Rails3 M17N — Yukihiro Matsumoto <matz@...> 2010/04/30

まつもと ゆきひろです

[ruby-dev:41035] Re: [Bug #595] Fiber ignores ensure clause

From: Yusuke ENDOH <mame@...>
Date: 2010-04-21 14:55:14 UTC
List: ruby-dev #41035
遠藤です。

2010年4月10日23:20 _ wanabe <redmine@ruby-lang.org>:
> ささださん
>
> このチケットおよびパッチについてコメントいただければ幸いです。
> この対処で問題ないかどうか、もし問題ないとしたら
> 1.9.2 リリース前に入れるべきかどうかが気になっています。
> そもそもアプローチがまずいようでしたら別の方法を考えます。

ささださんではないですが勝手にコメントします。


1) プロセス終了時でなく、Fiber が GC で回収される時に ensure 節が
実行されません。

  1000.times do
    Fiber.new do
      begin
        Fiber.yield
      ensure
        puts "foo!"
      end
    end.resume
    GC.start
  end

  # foo! が 1 個しか出ない (期待は 1000 個)
  $ ./ruby t.rb
  foo!

実行中の Thread と同様に、yield 中の Fiber は GC しないようにする
くらいしか思いつきません。


2) Fiber を作ったスレッドが終了した場合、Fiber の ensure 節が実行
されません。

  Thread.new do
    Fiber.new do
      begin
        Fiber.yield
      ensure
        puts "foo!"
      end
    end.resume
  end
  sleep 1
  puts "end"

  # foo! が出ない
  $ ./ruby t.rb
  end

プロセスの終了時でなく、スレッドの終了時に Fiber を起こさないと
行けない?


どちらも仕様レベルで検討しないといけないことのような気がします。
まだ結構大変そうなので、1.9.2 は見送った方がいいんじゃないかなと
思います。早くコメントしていれば、wanabe さんなら余裕で直せたと
思うので残念ですが。

-- 
Yusuke Endoh <mame@tsg.ne.jp>

In This Thread