From: SASADA Koichi Date: 2008-04-06T03:20:54+09:00 Subject: [ruby-dev:34259] Re: MVM interface draft  ささだです. Nobuyoshi Nakada wrote: >> registerの反対はunregisterでしょうか。releaseではないように >> 感じます。また、registerとenterは意味が違うんでしょうか。 > > Threadインスタンスの作成は重いので独立させたいということだったと > 思います。registerはそれに切り替えるだけなので軽くなるということ > で。  register じゃなくて enter ですね. # そういえば,引数は VALUE vm じゃなくて rb_vm_t *vm ですね.  Ruby と全く関係ない Native Thread にて, ruby_vm_register_thread(vm); ruby_vm_enter_thread(vm, ptr); // ptr: GC top のためのポインタ ... // Ruby の VALUE に触る何かをする. ruby_vm_leave_thread(vm); ... // ここでは Ruby の VALUE に触れない ruby_vm_enter_thread(vm, ptr); // ptr: GC top のためのポインタ ... // Ruby の VALUE に触る何かをする. ruby_vm_leave_thread(vm); ruby_vm_release_thread(vm); // 完全に vm と native thread を切り離す enter/leave は callback で使うような用途を想定しています. -- // SASADA Koichi at atdot dot net