山本です。
rb_thread_create なのですが、こうなっていて
VALUE
rb_thread_create(VALUE (*fn) (/* ??? */), void *arg)
{
Init_stack((VALUE*)&arg);
return rb_thread_start_0(fn, (VALUE)arg, rb_thread_alloc(rb_cThread));
}
こうなっています。
static VALUE
rb_thread_start_0(VALUE (*fn) (VALUE, rb_thread_t), VALUE arg, rb_thread_t th)
{
なので /* ??? */ は VALUE, rb_thread_t であるべきようにも思うのですが、rb_thread_t
は eval.c 内部で定義されている型であり、外部には公開されていません。これをどうすべき
でしょうか。