static ThreadData* thread_data_init(void) { ThreadData* td; VALUE obj; obj = Data_Make_Struct(rb_cObject, ThreadData, NULL, -1, td); rb_thread_local_aset(rb_thread_current(), id_thread_data, obj); return td; }
static VALUE rb_dl_set_win32_last_error(VALUE self, VALUE val) { rb_thread_local_aset(rb_thread_current(), id_win32_last_error, val); return Qnil; }
static VALUE thread_spec_rb_thread_local_aset(VALUE self, VALUE thr, VALUE sym, VALUE value) { return rb_thread_local_aset(thr, SYM2ID(sym), value); }