You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.0 KiB
34 lines
1.0 KiB
--- 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)); |
|
|
|
|