diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 1998-07-18 08:48:13 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1998-07-18 08:48:13 +0000 |
commit | f7ac0805bb97e1e2d7fa37a2ffc86ce9bd5c6350 (patch) | |
tree | 6d4919198f8df8e681d1b5b8e762aa295193ed53 /ext/Thread | |
parent | d91ab1730ab6e32cf51b06d50df160328772fd3d (diff) | |
download | perl-f7ac0805bb97e1e2d7fa37a2ffc86ce9bd5c6350.tar.gz |
fix yet another USE_THREADS leak due to failure to free stacks
p4raw-id: //depot/perl@1531
Diffstat (limited to 'ext/Thread')
-rw-r--r-- | ext/Thread/Thread.xs | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/ext/Thread/Thread.xs b/ext/Thread/Thread.xs index 5d47cd0251..34aee1bdef 100644 --- a/ext/Thread/Thread.xs +++ b/ext/Thread/Thread.xs @@ -150,11 +150,20 @@ threadstart(void *arg) SvREFCNT_dec(thr->errsv); SvREFCNT_dec(thr->errhv); + /*Safefree(cxstack);*/ + while (curstackinfo->si_next) + curstackinfo = curstackinfo->si_next; + while (curstackinfo) { + PERL_SI *p = curstackinfo->si_prev; + SvREFCNT_dec(curstackinfo->si_stack); + Safefree(curstackinfo->si_cxstack); + Safefree(curstackinfo); + curstackinfo = p; + } Safefree(markstack); Safefree(scopestack); Safefree(savestack); Safefree(retstack); - Safefree(cxstack); Safefree(tmps_stack); Safefree(ofs); @@ -165,6 +174,7 @@ threadstart(void *arg) Safefree(screamnext); Safefree(reg_start_tmp); SvREFCNT_dec(lastscream); + /*SvREFCNT_dec(defoutgv);*/ MUTEX_LOCK(&thr->mutex); DEBUG_L(PerlIO_printf(PerlIO_stderr(), |