in reply to Re^2: XS: Passing an external library's function a Perl XS callback
in thread SOLVED: XS: Passing an external library's function a Perl XS callback

I can confirm that you have to run
mine = Perl_get_context();
before you can use this. The run of
dSP;
just segfaults if
mine
have not been set via
mine = Perl_get_context();
I call on initialisation of my module a XS function which does does do
mine = Perl_get_context();
and verify that mine is not NULL before trying to call a perl function.

All I needed is the following to get it working, and call the function "functionname" within of the module I called "setcallback" from.
The use in C:
void dorunperlfunction() { if (mine) { PERL_SET_CONTEXT(mine); dSP; ENTER; SAVETMPS; PUSHMARK(SP); PUTBACK; call_pv("functionname", G_DISCARD|G_NOARGS); FREETMPS; LEAVE; }
The initialisation in XS(!):
PerlInterpreter * mine = NULL; ... void setcallback() CODE: ... mine = Perl_get_context(); ...