You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apr.apache.org by Aaron Bannert <aa...@clove.org> on 2001/12/28 00:15:54 UTC
Re: cvs commit: apr/test testthread.c
On Fri, Dec 28, 2001 at 10:03:57AM +1000, Brian Havard wrote:
> > Log:
> > Convert apr_thread_exit(..., apr_status_t *retval) to
> > apr_thread_exit(..., apr_status_t retval) so that status values
> > can actually be returned back to apr_thread_join.
> >
> > This patch converts all platforms to store the returned status
> > in the platform-specific opaque thread structure.
>
> Ok, but wouldn't it make sense for apr_thread_start_t to have a return type
> of apr_status_t too rather than void *? That way a return from the thread
> has the same type as apr_thread_exit().
A problem with this is that it introduces a second way to return a
status from an exiting thread. One reason we need apr_thread_exit is
so that we can exit the thread without falling all the way back to the
initially called apr_thread_start_t function.
Another reason* why we need apr_thread_exit that I just relized is that
it destroys the thread's pool. If the thread exits w/o calling
apr_thread_exit then it is leaking memory.
-aaron
*I'll rush off and check all apr_thread_create's to make sure they
have all the apr_thread_exit()s that they need.