diff options
author | Mark Kettenis <kettenis@gnu.org> | 2000-09-18 13:09:12 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2000-09-18 13:09:12 +0000 |
commit | e63286713f94c7bfb8496ceaf356e146a3ef04a1 (patch) | |
tree | e215b6533c2040b938d104a1f06afac66817fb18 /gdb/lin-lwp.c | |
parent | 9e75421134a05366b5d987f1b6921d7afcf9325d (diff) | |
download | gdb-e63286713f94c7bfb8496ceaf356e146a3ef04a1.zip gdb-e63286713f94c7bfb8496ceaf356e146a3ef04a1.tar.gz gdb-e63286713f94c7bfb8496ceaf356e146a3ef04a1.tar.bz2 |
* lin-lwp.c (stop_wait_callback): Remove bogus assertions in the
code that deals with exiting/signalled threads. Replace with
code similar to what's done in lin_lwp_wait.
Diffstat (limited to 'gdb/lin-lwp.c')
-rw-r--r-- | gdb/lin-lwp.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/gdb/lin-lwp.c b/gdb/lin-lwp.c index 59de118..2d074d3 100644 --- a/gdb/lin-lwp.c +++ b/gdb/lin-lwp.c @@ -506,14 +506,19 @@ stop_wait_callback (struct lwp_info *lp, void *data) if (WIFEXITED (status) || WIFSIGNALED (status)) { gdb_assert (num_lwps > 1); - gdb_assert (! is_cloned (lp->pid)); - - gdb_assert (in_thread_list (lp->pid)); - if (lp->pid != inferior_pid) - delete_thread (lp->pid); - printf_unfiltered ("[%s exited]\n", - target_pid_to_str (lp->pid)); + if (in_thread_list (lp->pid)) + { + /* Core GDB cannot deal with us deleting the current + thread. */ + if (lp->pid != inferior_pid) + delete_thread (lp->pid); + printf_unfiltered ("[%s exited]\n", + target_pid_to_str (lp->pid)); + } +#if DEBUG + printf ("%s exited.\n", target_pid_to_str (lp->pid)); +#endif delete_lwp (lp->pid); return 0; } @@ -708,7 +713,7 @@ lin_lwp_wait (int pid, struct target_waitstatus *ourstatus) { if (in_thread_list (lp->pid)) { - /* Core GDB cannot deal with us deeting the current + /* Core GDB cannot deal with us deleting the current thread. */ if (lp->pid != inferior_pid) delete_thread (lp->pid); |