From 00783ba94cd6b3d2519a463b821b378369bd86cd Mon Sep 17 00:00:00 2001 From: Michael Snyder Date: Tue, 3 Jul 2001 21:01:59 +0000 Subject: [PATCH] 2001-06-29 Ken Whaley * 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. --- gdb/ChangeLog | 7 +++++++ gdb/thread-db.c | 10 +++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 342f3fd8c96..bb17a7ce17c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2001-06-29 Ken Whaley + + * 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 * MAINTAINERS: Add myself to the write-after-approval list. diff --git a/gdb/thread-db.c b/gdb/thread-db.c index d989c4910ab..364dcc70b40 100644 --- a/gdb/thread-db.c +++ b/gdb/thread-db.c @@ -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)); -- 2.30.2