From: Rafael Garcia-Suarez Date: Thu, 19 Oct 2006 12:08:24 +0000 (+0000) Subject: Memory leak fix, by Jarkko X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=1cd8295263661419654a2a8f37669ea8c62d3024;p=p5sagit%2Fp5-mst-13.2.git Memory leak fix, by Jarkko p4raw-id: //depot/perl@29050 --- diff --git a/perlio.c b/perlio.c index 703085b..6434a9b 100644 --- a/perlio.c +++ b/perlio.c @@ -2397,6 +2397,27 @@ PerlIO_cleanup(pTHX) PerlIO_list_free(aTHX_ PL_def_layerlist); PL_def_layerlist = NULL; } +#ifdef USE_THREADS + MUTEX_UNLOCK(&PerlIO_mutex); +#endif + if (PL_perlio_fd_refcnt_size /* Assuming initial size of zero. */ + && PL_perlio_fd_refcnt) { +#ifdef PERL_TRACK_MEMPOOL + Malloc_t ptr = (Malloc_t)((char*)PL_perlio_fd_refcnt-sTHX); + struct perl_memory_debug_header *const header + = (struct perl_memory_debug_header *)ptr; + /* Only the thread that allocated us can free us. */ + if (header->interpreter == aTHX) +#endif + { + Safefree(PL_perlio_fd_refcnt); + PL_perlio_fd_refcnt = NULL; + PL_perlio_fd_refcnt_size = 0; + } + } +#ifdef USE_THREADS + MUTEX_UNLOCK(&PerlIO_mutex); +#endif }