[前][次][番号順一覧][スレッド一覧][生データ]

yarv-dev:331

From: Yukihiro Matsumoto <matz ruby-lang.org>
Date: Mon, 22 Nov 2004 11:25:22 +0900
Subject: [yarv-dev:331] Re: support rb_yield

まつもと ゆきひろです

In message "Re: [yarv-dev:330] support rb_yield"
    on Mon, 22 Nov 2004 03:10:59 +0900, SASADA Koichi <ko1 atdot.net> writes:

|      for (i=0; i<end; i++) {
|        rb_yield(LONG2FIX(i));
|      }
|
| のような部分を、
|
|      thread_yield_light_prepare(th, 1, &val);
|      for(i=0; i<end; i++){
|        val = LONG2FIX(i);
|        thread_yield_light_invoke(th, 1, &val);
|      }
|
| のように変更する、という工夫です(thread_yield_light_prepare
|がコストの高い VM loop のための初期化処理を行う)。

ブロックが渡されたメソッドはブロックを呼び出す確率が高いとい
うことで、呼び出し前にthread_yield_light_prepare()のようなこ
とができれば良いのではないかと思います。現状のAPIではローカ
ル変数のアドレスを取っているので不可能ですが。

                                まつもと ゆきひろ /:|)

--
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

       330 2004-11-22 03:10 [ko1 atdot.net       ] support rb_yield                        
->     331 2004-11-22 11:25 ┗[matz ruby-lang.org  ]                                       
       332 2004-11-22 16:12  ┗[ko1 atdot.net       ]                                     
       333 2004-11-23 00:02   ┗[matz ruby-lang.org  ]