* lin-lwp.c (stop_wait_callback): Remove bogus assertions in the
authorMark Kettenis <kettenis@gnu.org>
Mon, 18 Sep 2000 13:09:12 +0000 (13:09 +0000)
committerMark Kettenis <kettenis@gnu.org>
Mon, 18 Sep 2000 13:09:12 +0000 (13:09 +0000)
code that deals with exiting/signalled threads.  Replace with
code similar to what's done in lin_lwp_wait.

gdb/ChangeLog
gdb/lin-lwp.c

index 937a703b4244f079b1fd29339e02e4be5dde40a1..92bbe8e30111bf6a466e99c0e072295b09c301ec 100644 (file)
@@ -1,3 +1,9 @@
+2000-09-18  Mark Kettenis  <kettenis@gnu.org>
+
+       * 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.
+
 2000-09-17  Kevin Buettner  <kevinb@redhat.com>
 
        * ppc-linux-nat.c (fill_gregset, fill_fpregset): New functions.
index 59de1180c8edeed2793d7f9ca734ac7abb76515d..2d074d3e5d8d2d68eca8e5e9d70a0186d98bda34 100644 (file)
@@ -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);