On Thu, 27 Dec 2001 15:15:54 -0800, Aaron Bannert wrote: >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.
What's wrong with that? Both ways are already available so they should both have the same type. It's a very simple change. > 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. It'd be better to just make dummy_worker() do an apr_pool_destroy() before returning. That prevents the leak while still allowing return to be used. -- ______________________________________________________________________________ | Brian Havard | "He is not the messiah! | | [EMAIL PROTECTED] | He's a very naughty boy!" - Life of Brian | ------------------------------------------------------------------------------