1998-04-30  Ulrich Drepper  <drepper@cygnus.com>

	* manager.c (pthread_free): Detect already free child.
	Patch by Xavier Leroy, reported by Matthias Urlichs.
This commit is contained in:
Ulrich Drepper 1998-04-30 10:14:00 +00:00
parent 02c6684052
commit 3dd2c3e247
2 changed files with 18 additions and 1 deletions

View File

@ -1,3 +1,8 @@
1998-04-30 Ulrich Drepper <drepper@cygnus.com>
* manager.c (pthread_free): Detect already free child.
Patch by Xavier Leroy, reported by Matthias Urlichs.
1998-04-23 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (linuxthreads-version): Renamed back from

View File

@ -308,10 +308,22 @@ static int pthread_handle_create(pthread_t *thread, const pthread_attr_t *attr,
}
/* Free the resources of a thread. */
/* Try to free the resources of a thread when requested by pthread_join
or pthread_detach on a terminated thread. */
static void pthread_free(pthread_descr th)
{
pthread_descr t;
/* Check that the thread th is still there -- pthread_reap_children
might have deallocated it already */
t = __pthread_main_thread;
do {
if (t == th) break;
t = t->p_nextlive;
} while (t != __pthread_main_thread);
if (t != th) return;
pthread_handle handle;
ASSERT(th->p_exited);
/* Make the handle invalid */