From 5c54124babc0fa0b89be7a04c245d1784a9dcbaa Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Thu, 20 Jul 1995 21:25:12 +0000 Subject: [PATCH] * lynx-nat.c (child_wait): A thread_id of zero from wait apparently means the process is single threaded, so there's no need to add it to the thread list. Handle case where multi-threaded process reverts back to a single-threaded process. --- gdb/ChangeLog | 7 ++++++- gdb/lynx-nat.c | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ac6e7408f1a..7767c6dcb5c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,4 +1,9 @@ -Thu Jul 20 15:00:31 1995 Jeff Law (law@snake.cs.utah.edu) +Thu Jul 20 14:18:51 1995 Jeffrey A. Law + + * lynx-nat.c (child_wait): A thread_id of zero from wait apparently + means the process is single threaded, so there's no need to add + it to the thread list. Handle case where multi-threaded process + reverts back to a single-threaded process. * gdbserver/low-hppabsd.c: Remove error declaration. * gdbserver/low-sparc.c: Likewise. diff --git a/gdb/lynx-nat.c b/gdb/lynx-nat.c index 1ab9cc7cc67..883496ed7b4 100644 --- a/gdb/lynx-nat.c +++ b/gdb/lynx-nat.c @@ -631,7 +631,7 @@ child_wait (pid, ourstatus) /* Initial thread value can only be acquired via wait, so we have to resort to this hack. */ - if (TIDGET (inferior_pid) == 0) + if (TIDGET (inferior_pid) == 0 && thread != 0) { inferior_pid = BUILDPID (inferior_pid, thread); add_thread (inferior_pid); @@ -639,6 +639,11 @@ child_wait (pid, ourstatus) pid = BUILDPID (pid, thread); + /* We've become a single threaded process again. */ + if (thread == 0) + inferior_pid = pid; + + /* Check for thread creation. */ if (WIFSTOPPED(status) && WSTOPSIG(status) == SIGTRAP && !in_thread_list (pid)) -- 2.30.2