diff options
-rw-r--r-- | pod/perlpragma.pod | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/pod/perlpragma.pod b/pod/perlpragma.pod index 12e8124d0c..51292a8a12 100644 --- a/pod/perlpragma.pod +++ b/pod/perlpragma.pod @@ -138,3 +138,10 @@ or complex structures, you should serialise them, for example with C<pack>. The deletion of a hash key from C<%^H> is recorded, and as ever can be distinguished from the existence of a key with value C<undef> with C<exists>. + +B<Don't> attempt to store references to data structures as integers which +are retrieved via C<caller> and converted back, as this will not be threadsafe. +Accesses would be to the structure without locking (which is not safe for +Perl's scalars), and either the structure has to leak, or it has to be +freed when its creating thread terminates, which may be before the optree +referencing it is deleted, if other threads outlive it. |