patches/gdb/6.4/120-thread-timeout.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Sep 28 21:35:44 2008 +0000 (2008-09-28)
changeset 885 4653d6002d37
parent 96 aa1a9fbd6eb8
permissions -rw-r--r--
Had a new known issue: ccache will break the build because we're sym-linking to have our own compiler for host and build systems, but that screws up ccache finding the real compiler.
There is no fix, so the only way to inform the users is to document it: remove ccache.

/trunk/docs/known-issues.txt | 25 21 4 0 +++++++++++++++++++++----
1 file changed, 21 insertions(+), 4 deletions(-)
yann@96
     1
--- gdb-6.3.org/gdb/gdbserver/thread-db.c	2004-10-17 02:42:00.000000000 +0900
yann@96
     2
+++ gdb-6.3/gdb/gdbserver/thread-db.c	2005-01-27 12:19:29.000000000 +0900
yann@96
     3
@@ -21,6 +21,7 @@
yann@96
     4
    Foundation, Inc., 59 Temple Place - Suite 330,
yann@96
     5
    Boston, MA 02111-1307, USA.  */
yann@96
     6
 
yann@96
     7
+#include <unistd.h>
yann@96
     8
 #include "server.h"
yann@96
     9
 
yann@96
    10
 #include "linux-low.h"
yann@96
    11
@@ -142,6 +143,7 @@
yann@96
    12
   td_event_msg_t msg;
yann@96
    13
   td_err_e err;
yann@96
    14
   struct inferior_linux_data *tdata;
yann@96
    15
+  int timeout;
yann@96
    16
 
yann@96
    17
   if (debug_threads)
yann@96
    18
     fprintf (stderr, "Thread creation event.\n");
yann@96
    19
@@ -152,7 +154,13 @@
yann@96
    20
      In the LinuxThreads implementation, this is safe,
yann@96
    21
      because all events come from the manager thread
yann@96
    22
      (except for its own creation, of course).  */
yann@96
    23
-  err = td_ta_event_getmsg (thread_agent, &msg);
yann@96
    24
+  for (timeout = 0; timeout < 50000; timeout++)
yann@96
    25
+    {
yann@96
    26
+      err = td_ta_event_getmsg (thread_agent, &msg);
yann@96
    27
+      if (err != TD_NOMSG)
yann@96
    28
+	break;
yann@96
    29
+      usleep(1000);
yann@96
    30
+    }
yann@96
    31
   if (err != TD_OK)
yann@96
    32
     fprintf (stderr, "thread getmsg err: %s\n",
yann@96
    33
 	     thread_db_err_str (err));
yann@96
    34