V
Victor Shepelev
Hi all.
The question is: can I save some Proc object in global variable of C
extension?
What I've tried:
static VALUE g_callback;
//some callback-saving function:
static VALUE save_callback(VALUE self, VALUE proc)
{
...bla-bla-bla...
rb_global_variable(&proc); //as recommended in "Extending Ruby"
g_callback = proc;
...bla-bla-bla...
}
But when I've tried to use the saved g_callback later, I've received various
errors. Moreover,
rb_p(g_callback);
prints some garbage or crashes (just like object g_callback references is
deleted). Raw integer value of g_callback remains unchanged.
What I do wrong?
Thanks.
Victor.
The question is: can I save some Proc object in global variable of C
extension?
What I've tried:
static VALUE g_callback;
//some callback-saving function:
static VALUE save_callback(VALUE self, VALUE proc)
{
...bla-bla-bla...
rb_global_variable(&proc); //as recommended in "Extending Ruby"
g_callback = proc;
...bla-bla-bla...
}
But when I've tried to use the saved g_callback later, I've received various
errors. Moreover,
rb_p(g_callback);
prints some garbage or crashes (just like object g_callback references is
deleted). Raw integer value of g_callback remains unchanged.
What I do wrong?
Thanks.
Victor.