static VALUE ioscheduler_source_callback_call(VALUE data) { static VALUE s_id_call; if (s_id_call == 0) s_id_call = rb_intern("call"); return rb_funcall(USE_BLOCK_AND_SAVE(data), s_id_call, 0); }
static VALUE ioscheduler_job_callback_call(VALUE data) { static VALUE s_id_call; struct ioscheduler_job_callback_data *real; if (s_id_call == 0) s_id_call = rb_intern("call"); real = (struct ioscheduler_job_callback_data *)data; /* TODO: Totally unsure if _UNREF is correct here or not. */ return rb_funcall(USE_BLOCK_AND_SAVE(real->data), s_id_call, 2, GOBJ2RVAL_UNREF(real->job), GOBJ2RVAL_UNREF(real->cancellable)); }