Elizabeth Mattijsen <[EMAIL PROTECTED]> wrote:

> When you use an external library in Perl, such as e.g. libxml, you
> have Perl data-structures and libxml data-structures.  The Perl
> data-structures contain pointers to the libxml data-structures.

> In comes the starting of an ithread and Perl clones all of the Perl
> data-structures.  But it copies _only_ does things it knows about.
> And thus leaves the pointers to the libxml data-structures untouched.
> Now you have 2 Perl data-structures that point to the _same_ libxml
> data-structures.  Voila, instant sharing.

I see. Our library loading code should take care of that. On thread
creation we call again the _init code, so that the external lib can
prepare itself to be used from multiple threads. But don't ask me about
details ;)

> Liz

leo

Reply via email to