Hi, the a pointer to current interpreter is somehow written to the Perl interpreter itself by this macro:
#ifndef HvPMROOT # if MP_PERL_VERSION_AT_LEAST(5, 9, 5) #define MP_THX_INTERP_SET(thx, interp) \ ((XPVMG*)SvANY(*Perl_Imodglobal_ptr(thx)))->xmg_u.xmg_magic = (MAGIC*)interp # else #define MP_THX_INTERP_SET(thx, interp) \ ((XPVMG*)SvANY(*Perl_Imodglobal_ptr(thx)))->xmg_magic = (MAGIC*)interp # endif #else #define MP_THX_INTERP_SET(thx, interp) \ HvPMROOT(*Perl_Imodglobal_ptr(thx)) = (PMOP*)interp #endif What is HvPMROOT and what is Perl_Imodglobal_ptr? Are these normal Perl variables that can also be accessed from Perl level? If not why are here special variables used? Can that not be something like $Modperl::CurrentInterpreter or so? Torsten
pgpgwBcCRDrl0.pgp
Description: PGP signature