You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Sri <w2...@yahoo.com> on 2009/11/30 19:34:19 UTC

How to share variables when embedding, cloning perl

Hello,

I havent found any relevant posts on this topic, so hoping the experts can rescue me.  My posts on p5p and ithreads didnt get any responses.

I'm extending Perl (with SWIG) and also embedding a cloned interpreter.  I use the cloned interpreter to invoke Perl sub's as callbacks.  The callback part is working fine.  However, a variable changed in the callback subroutine is NOT becoming available in the rest of the perl script.

I tried to "use threads:shared" and ":shared" the variable in question, but perl exits, complaining that another completely unrelated scalar is "Invalid value for shared scalar at".  

How can I "share" variable updates between the main perl script and the callbacks invokved thru the cloned interpreter?

I'm using v5.8.8 perl.  perl_clone() is using CLONEf_COPY_STACKS | CLONEf_KEEP_PTR_TABLE.  The perl sub is sv_dup() with the same flags in CLONE_PARAMS before call_sv().

Please see this post that describes my current code.

http://markmail.org/thread/cjbhybjfikuirvud

Thanks