class Thread
Public Class Methods
new(*args)
click to toggle source
static VALUE
bdb_thread_init(int argc, VALUE *argv, VALUE obj)
{
VALUE env;
if ((env = rb_thread_local_aref(rb_thread_current(), bdb_id_current_env)) != Qnil) {
rb_thread_local_aset(obj, bdb_id_current_env, env);
}
if (rb_block_given_p()) {
#if HAVE_RB_BLOCK_CALL
return rb_block_call(obj, rb_intern("__bdb_thread_init__"), argc, argv,
rb_yield, obj);
#else
VALUE tmp[3];
tmp[0] = obj;
tmp[1] = (VALUE)argc;
tmp[2] = (VALUE)argv;
return rb_iterate((VALUE (*)(VALUE))bdb_env_iterate, (VALUE)tmp, rb_yield, obj);
#endif
}
return rb_funcall2(obj, rb_intern("__bdb_thread_init__"), argc, argv);
}