ひとり勉強会

ひとり楽しく勉強会

2007-04-02から1日間の記事一覧

まとめ

はい。おしまいです。YARVソースコード勉強会第一部完です。さて次は何をやろうかなー。。。 Parrotを読む会 JRubyを読む会 とかいう前に、サボりすぎのSICM勉強会をなんとかしないとですねえ。うーん。

ブロッキング

スレッド実行中にI/Oなどシステム関係の操作で処理がブロックするときは、グローバルロックを解除します。YARVのスレッドモデルでは、そうしないと他のスレッドまで一斉に止まってしまうので。これは、ブロックする処理を実装した関数へのポインタを rb_thre…

スレッド切り替え

1個だけ実行するスレッドを、グローバルなMutexのロックという形で明示的に管理しているので、スレッドの切り替えの部分でもロックの取得/解放を明示的に実装することになります。これをやるのが rb_thread_schedule @ thread.c 関数。 void rb_thread_sche…

スレッド初期化

メインスレッド VMのメインスレッドに関する情報は、Init_VM 関数(2006-10-27 - ひとり勉強会)で記録されます。 Thread.new Thread.new による新規スレッド起動の流れを見ていきます。まず、Threadクラスの定義は Init_Thread @ thread.c です。 void Init…

スレッド概要

YARV のスレッドモデルの概略をつかむのには、yarv-dev や ruby-dev のささださんの投稿を参考にしました。 http://www.atdot.net/~ko1/w3ml/w3ml.cgi/yarv-dev/msg/631 [ruby-dev:30202] Re: YARV の thread について 今のところは、model 2、つまり「一つ…

YARVソースコード勉強会 (15)

コンパイラ編(PPT or PDF)に引き続き、VM編のまとめスライドを作りました。 第11回〜第15回まとめ PowerPoint 第11回〜第15回まとめ PDF というわけで、最終回です。今日はマルチスレッド周りのソースを読んでいきます。