2001-06-29 Ken Whaley <ken@believe.com>

* thread-db.c (attach_thread): Check for TD_THR_ZOMBIE in addition
	to TD_THR_UNKNOWN when looking for defunct zombie threads.
	(thread_db_thread_alive): Ditto.
	(find_new_threads_callback): Ditto.
This commit is contained in:
Michael Snyder 2001-07-03 21:01:59 +00:00
parent 4970cb0f38
commit 00783ba94c
2 changed files with 14 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2001-06-29 Ken Whaley <ken@believe.com>
* thread-db.c (attach_thread): Check for TD_THR_ZOMBIE in addition
to TD_THR_UNKNOWN when looking for defunct zombie threads.
(thread_db_thread_alive): Ditto.
(find_new_threads_callback): Ditto.
2001-07-02 Daniel Jacobowitz <drow@mvista.com>
* MAINTAINERS: Add myself to the write-after-approval list.

View File

@ -573,7 +573,8 @@ attach_thread (ptid_t ptid, const td_thrhandle_t *th_p,
tp->private = xmalloc (sizeof (struct private_thread_info));
tp->private->lwpid = ti_p->ti_lid;
if (ti_p->ti_state == TD_THR_UNKNOWN)
if (ti_p->ti_state == TD_THR_UNKNOWN ||
ti_p->ti_state == TD_THR_ZOMBIE)
return;/* A zombie thread that's been joined -- do not attach. */
/* Under Linux, we have to attach to each and every thread. */
@ -915,7 +916,8 @@ thread_db_thread_alive (ptid_t ptid)
if (err != TD_OK)
return 0;
if (ti.ti_state == TD_THR_UNKNOWN)
if (ti.ti_state == TD_THR_UNKNOWN ||
ti.ti_state == TD_THR_ZOMBIE)
return 0; /* A zombie thread that's been joined. */
return 1;
@ -938,7 +940,9 @@ find_new_threads_callback (const td_thrhandle_t *th_p, void *data)
if (err != TD_OK)
error ("Cannot get thread info: %s", thread_db_err_str (err));
if (ti.ti_state == TD_THR_UNKNOWN)
if (ti.ti_state == TD_THR_UNKNOWN ||
ti.ti_state == TD_THR_ZOMBIE)
return 0; /* A zombie that's been reaped -- ignore. */
ptid = BUILD_THREAD (ti.ti_tid, GET_PID (inferior_ptid));