Fix a segfault in threaded.c caused by passing uninitialized apr_thread_t * to apr_thread_join(). Now we clear the array of apr_thread_t * initially so we can track which threads we actually created. Other changes: don't clobber storage by passing bogus array entry as 1st parameter to apr_thread_create() to create the start_threads() thread join up with the start_threads() thread at termination so that it is cleaned up and so that no worker threads are still being created