apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William A. Rowe, Jr." <wr...@rowe-clan.net>
Subject Re: [PATCH] APR thread handle leak on Windows
Date Sat, 04 Feb 2006 21:12:47 GMT
Chris, and devs, I'm confused;

the thd->td handle *is* closed in apr_thread_join.  If we deploy this patch
to accomodate a particular programming style, we lose valuable return context
information, but more importantly, if you aren't invoking apr_thread_join, then
on many flavors of *nix you aren't farming the zombie threads.

Note we also properly close thd->td within apr_thread_detach, for much the
same reasons one or the other must be invoked on *nix.

This patch is problematic for me; anyone else have some thoughts to share?

Bill

Chris Storah wrote:
> Enclosed is a patch to fix a leak in APR threads, due to _endthreadex  
> not automatically closing the handle (unlike _endthread).
> 
> Chris
> 
> 
> ------------------------------------------------------------------------
> 
> --- thread.c	2005-12-30 15:44:05.000000000 +1100
> +++ thread.c.orig	2005-12-29 10:05:45.000000000 +1100
> @@ -137,10 +137,6 @@
>      apr_pool_destroy(thd->pool);
>      thd->pool = NULL;
>  #ifndef _WIN32_WCE
> -	/* need to close the handle as _endthreadex does not automatically
> -	 * do this - unlike _endthread
> -	 */
> -	CloseHandle(thd->td);
>      _endthreadex(0);
>  #else
>      ExitThread(0);


Mime
View raw message