From: Hidetoshi NAGAI Date: 2007-02-05T11:05:56+09:00 Subject: [ruby-dev:30258] Re: YARV の thread について 永井@知能.九工大です. 回答をありがとうございます. From: SASADA Koichi Subject: [ruby-dev:30256] Re: YARV の thread について Date: Mon, 5 Feb 2007 05:03:36 +0900 Message-ID: <45C63BEA.3030509@atdot.net> > > コンパイル時に,指定された Thread model がどれであるかを > > 判定するマクロ定数は用意されますか? > > できればスクリプトからも Thread model の確認ができた方が > > 嬉しいのですが... > >  ちょっと考えてみます.が,いちいちスレッドモデルを気にしないといけない > のは大変そうですね.なんか統一的な解決があればいいんですが. 気にしているのはイベントループからの切り替えタイミングの制御です. model 2 では明示的に切り替えてやらないといけないですが, 伺った話に基づくと,あまりに頻繁に切り替えるとレスポンスが 悪くなりそうですので,少し工夫が求められそうです. それに対して model 3 ではそうした制御は単なる無駄で, 「いつ切り替わるかわからない」という前提での対応が必要です. で,「モデルの確認ができた方が嬉しいな」と. もちろん当座は model 2 前提にしておけばいいんですが, 将来の model 3 の実装時には現在検討していることを きっと忘れてしまっているでしょうから (^_^;, 対応できそうならいっそのこと一気にというわけです. >  tcl/tk を良く知らないで言うんですが,完全に対応させるのはどちらも不幸 > な気がします. 考えてみてはいるんですがうまい手が思いつかなくて... 何らかの制限は付けざるをえないかもしれません. > > YARV では rb_thread_schedule() の呼び出しだけで十分で, > > 割り込み処理の方は気にしなくても良いのでしょうか? > >  割り込み処理を起こすようにしてあったような. これくらいは自分でチェックすれば良いことですよね.ごめんなさい. > > 従来ほどには気にする必要はないけれども,Thread model 2 の場合は, > > 念のために調整パラメータは用意しておいた方が良いということのようですね. > >  なんのパラメータですか? 説明不足でした. 上記のようなイベントループからの切り替えタイミング制御のための 調整パラメータの話でした. ですので,YARV 側でどうのという話ではありません. まぎらわしくてすみません. > [ruby-dev:30253] Re: YARV の thread について > >>  あんまり対策は考えていないんですが、そういう API を用意することは可能 > >> > です。その際は、ちょっと面倒な制約が入るかもしれません。 > > > > 逆に Ruby を呼ぶことが *できない* ような native thread であるかを > > チェックするための公式な方法はありませんか? > > 必要もないのに native thread をまたぐのは無駄ですので, > > 低コストでチェック可能なら,それを利用する方が望ましいと思いまして. > >  うーん.端的に言うと無理じゃないかと思います. 無理ですか. native thread ID と Thread オブジェクトとの間での 対応表のようなものでもあればできるかなと思ったのですが, 仕方ないですね. その前提で考えることにします. ありがとうございました. -- 永井 秀利 (九工大 知能情報) nagai@ai.kyutech.ac.jp