Sharing scalars (data) between cloned and main interepreter instances

[email protected] (Sri) Tue, 24 Nov 2009 00:04:29 -0800 (PST)
Newsgroups perl.ithreads
Message-ID <[email protected]>
Hello,

I havent found any relevant posts on this topic so far, so hoping the experts can rescue me.

I'm extending Perl 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, the value of a variable changed in the callback subroutine is NOT being reflected 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".  Why this msg when that is not declared as ":shared"?

More importatnly, 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