aboutsummaryrefslogtreecommitdiff
path: root/gdb/lin-lwp.c
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@gnu.org>2000-09-18 13:09:12 +0000
committerMark Kettenis <kettenis@gnu.org>2000-09-18 13:09:12 +0000
commite63286713f94c7bfb8496ceaf356e146a3ef04a1 (patch)
treee215b6533c2040b938d104a1f06afac66817fb18 /gdb/lin-lwp.c
parent9e75421134a05366b5d987f1b6921d7afcf9325d (diff)
downloadgdb-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.c21
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);