From: Shugo Maeda Date: 2007-05-31T10:55:17+09:00 Subject: [ruby-dev:30849] Re: Supporting Fiber 前田です。 On 05/30/2007 03:33 AM, SASADA Koichi wrote: > Shugo Maeda さんは書きました: >>> (1) そもそも、Ruby にこんな機能を加えていいですか? >>> >>>  とりあえず、Generator は大変書きやすかったです。 >> いいと思うのですが、Rubyレベルで継続を使って書かないのはパフォーマンスの >> ためですか? > >  そうです。継続でのコンテキスト切り替えは VM スタックのコピー > が必要ですが、Fiber の場合、そこは VM スタックポイントの切り替 > えで済むからです。マシンスタックのコピーは、どちらも必要なので > すが。 了解です。 しかし、Fiberが入って、しかも実装に継続が使われないとなると、 ますます継続の存在意義がなくなりそうですね。 # いや、継続をなくせと言ってるわけではないですよ…。 >> とはいえFiber.switch_to(fib)はかっこわるいので、Fiber#runかなあ。 >> どっちかというと、イメージ的に近いのはpassよりrunじゃないですかね。 >> Thread#runとは必ず処理が移るかどうかという違いはあるわけですけど、 >> passよりrunの方が処理が移る先がわかりやすいように思います。 > >  うーん、run は思いつきませんでした。なんとなく、最初の一回だ > けのメソッド名に見えるのは気のせいでしょうか。 それをいうとThread#runも変ということになりますよね。 # 変なのかも…。 Javaだとrunはresumeでしたっけ。 On 05/30/2007 06:06 PM, NAKAMURA, Hiroshi wrote: >>>> (3) API 名は適当でしょうか? > > 確かに、Fiber#runはピンと来ませんでした。「起こす」系がいいと思いました > が、Threadとの類似は避けたほうがいいものなんでしょうか。現状でどれかと言 > えばpassかな。。。 「起こす」だとやはりThreadから取ってFiber#wakeupですかね。 -- 前田 修吾