summaryrefslogtreecommitdiff
path: root/toolchain/gdb/snapshot/500-thread-timeout.patch
diff options
context:
space:
mode:
author"Steven J. Hill" <sjhill@realitydiluted.com>2005-09-16 04:47:53 +0000
committer"Steven J. Hill" <sjhill@realitydiluted.com>2005-09-16 04:47:53 +0000
commit05a534e662420dab01bf4695447b34b2c0d0eb61 (patch)
tree2f646c177312948566cc8085172c0b2ad2026aeb /toolchain/gdb/snapshot/500-thread-timeout.patch
parent7956dda04e5e7fc017517e52b06076c649c17389 (diff)
Add patches for latest snapshot of gdb. The starting point was the 6.3
patches which were then sliced down to this list since all the other ones were checked in or just applied with horrific failure. Also added new NPTL support patch for MIPS courtesy of Daniel J. Suckers, err I mean testers wanted.
Diffstat (limited to 'toolchain/gdb/snapshot/500-thread-timeout.patch')
-rw-r--r--toolchain/gdb/snapshot/500-thread-timeout.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/toolchain/gdb/snapshot/500-thread-timeout.patch b/toolchain/gdb/snapshot/500-thread-timeout.patch
new file mode 100644
index 000000000..6db0a7a47
--- /dev/null
+++ b/toolchain/gdb/snapshot/500-thread-timeout.patch
@@ -0,0 +1,34 @@
+--- gdb-6.3.org/gdb/gdbserver/thread-db.c 2004-10-17 02:42:00.000000000 +0900
++++ gdb-6.3/gdb/gdbserver/thread-db.c 2005-01-27 12:19:29.000000000 +0900
+@@ -21,6 +21,7 @@
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
++#include <unistd.h>
+ #include "server.h"
+
+ #include "linux-low.h"
+@@ -142,6 +143,7 @@
+ td_event_msg_t msg;
+ td_err_e err;
+ struct inferior_linux_data *tdata;
++ int timeout;
+
+ if (debug_threads)
+ fprintf (stderr, "Thread creation event.\n");
+@@ -152,7 +154,13 @@
+ In the LinuxThreads implementation, this is safe,
+ because all events come from the manager thread
+ (except for its own creation, of course). */
+- err = td_ta_event_getmsg (thread_agent, &msg);
++ for (timeout = 0; timeout < 50000; timeout++)
++ {
++ err = td_ta_event_getmsg (thread_agent, &msg);
++ if (err != TD_NOMSG)
++ break;
++ usleep(1000);
++ }
+ if (err != TD_OK)
+ fprintf (stderr, "thread getmsg err: %s\n",
+ thread_db_err_str (err));
+