diff options
author | Dave Mitchell <davem@fdisolutions.com> | 2007-01-15 14:16:53 +0000 |
---|---|---|
committer | Dave Mitchell <davem@fdisolutions.com> | 2007-01-15 14:16:53 +0000 |
commit | c301d6064f299b8a77670348b81d25d2d94d6a2f (patch) | |
tree | 4661596c73b9a8b1af9f57407939bb72efd14537 /perl.c | |
parent | fb54e853c1d154ca0b17cebf36613cf8e29339fe (diff) | |
download | perl-c301d6064f299b8a77670348b81d25d2d94d6a2f.tar.gz |
extend threads 'veto cleanup' to perl_free and system stuff
p4raw-id: //depot/perl@29827
Diffstat (limited to 'perl.c')
-rw-r--r-- | perl.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -580,6 +580,7 @@ perl_destruct(pTHXx) if (CALL_FPTR(PL_threadhook)(aTHX)) { /* Threads hook has vetoed further cleanup */ + PL_veto_cleanup = TRUE; return STATUS_EXIT; } @@ -1325,6 +1326,9 @@ Releases a Perl interpreter. See L<perlembed>. void perl_free(pTHXx) { + if (PL_veto_cleanup) + return; + #ifdef PERL_TRACK_MEMPOOL { /* @@ -1381,7 +1385,7 @@ __attribute__((destructor)) perl_fini(void) { dVAR; - if (PL_curinterp) + if (PL_curinterp && !PL_veto_cleanup) FREE_THREAD_KEY; } |