前田です。

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ですかね。

-- 
前田 修吾