Retrieve instance variable in GVL

This commit is contained in:
Kitaiti Makoto 2026-04-27 09:19:33 +09:00
parent a62c44d722
commit 59aacc8afa
1 changed files with 2 additions and 3 deletions

View File

@ -110,7 +110,6 @@ static VALUE ruby_whisper_s_finalize_log_callback(VALUE self, VALUE id) {
typedef struct {
int level;
const char * buffer;
VALUE user_data;
} call_log_callbacks_args;
static void*
@ -121,7 +120,8 @@ call_log_callbacks(void *v_args) {
}
call_log_callbacks_args *args = (call_log_callbacks_args *)v_args;
rb_funcall(log_callback, id_call, 3, INT2NUM(args->level), rb_str_new2(args->buffer), args->user_data);
VALUE user_data = rb_iv_get(mWhisper, "user_data");
rb_funcall(log_callback, id_call, 3, INT2NUM(args->level), rb_str_new2(args->buffer), user_data);
return NULL;
}
@ -138,7 +138,6 @@ ruby_whisper_log_callback(enum ggml_log_level level, const char * buffer, void *
call_log_callbacks_args args = {
level,
buffer,
rb_iv_get(mWhisper, "user_data")
};
if (ruby_thread_has_gvl_p()) {
call_log_callbacks((void *)&args);