Change 18310 by [EMAIL PROTECTED] on 2002/12/17 00:51:46

        regen-headers to get new API docs from #18306

Affected files ...

... //depot/perl/pod/perlapi.pod#146 edit

Differences ...

==== //depot/perl/pod/perlapi.pod#146 (text+w) ====
Index: perl/pod/perlapi.pod
--- perl/pod/perlapi.pod#145~18302~     Sat Dec 14 14:34:25 2002
+++ perl/pod/perlapi.pod        Mon Dec 16 16:51:46 2002
@@ -512,6 +512,35 @@
 
 Create and return a new interpreter by cloning the current one.
 
+perl_clone takes these flags as paramters:
+
+CLONEf_COPY_STACKS - is used to, well, copy the stacks also, 
+without it we only clone the data and zero the stacks, 
+with it we copy the stacks and the new perl interpreter is 
+ready to run at the exact same point as the previous one. 
+The pseudo-fork code uses COPY_STACKS while the 
+threads->new doesn't.
+
+CLONEf_KEEP_PTR_TABLE
+perl_clone keeps a ptr_table with the pointer of the old 
+variable as a key and the new variable as a value, 
+this allows it to check if something has been cloned and not 
+clone it again but rather just use the value and increase the 
+refcount. If KEEP_PTR_TABLE is not set then perl_clone will kill 
+the ptr_table using the function 
+C<ptr_table_free(PL_ptr_table); PL_ptr_table = NULL;>, 
+reason to keep it around is if you want to dup some of your own 
+variable who are outside the graph perl scans, example of this 
+code is in threads.xs create
+
+CLONEf_CLONE_HOST
+This is a win32 thing, it is ignored on unix, it tells perls 
+win32host code (which is c++) to clone itself, this is needed on 
+win32 if you want to run two threads at the same time, 
+if you just want to do some stuff in a separate perl interpreter 
+and then throw it away and return to the original one, 
+you don't need to do anything.
+
        PerlInterpreter*        perl_clone(PerlInterpreter* interp, UV flags)
 
 =for hackers
End of Patch.

Reply via email to