mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-30 21:44:27 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			35 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- 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));
 | |
| 
 |