2003-11-05 Michael Chastain <mec@shout.net>
authorMichael Chastain <mec@google.com>
Thu, 6 Nov 2003 02:08:08 +0000 (02:08 +0000)
committerMichael Chastain <mec@google.com>
Thu, 6 Nov 2003 02:08:08 +0000 (02:08 +0000)
* gdb.mi/pthreads.c (routine): Handle early return from sleep.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.mi/pthreads.c

index 637d09109efa89f32795858f149ab02569595c71..1106c497188f2e52bcaad1967a632b4c009e1322 100644 (file)
@@ -1,3 +1,7 @@
+2003-11-05  Michael Chastain  <mec@shout.net>
+
+       * gdb.mi/pthreads.c (routine): Handle early return from sleep.
+
 2003-11-03  Kris Warkentin  <kewarken@qnx.com>
 
        * gdb.arch/gdb1291.c: New test file.
index 801e013c624956229a3aefa64b2546e57b351534..b73b0236c9397b8b2c5ae75513708006d9b6fbb6 100644 (file)
@@ -42,7 +42,14 @@ static pthread_attr_t null_attr;
 void *
 routine (void *arg)
 {
-  sleep (9);
+  /* When gdb is running, it sets hidden breakpoints in the thread
+     library.  The signals caused by these hidden breakpoints can
+     cause system calls such as 'sleep' to return early.  Pay attention
+     to the return value from 'sleep' to get the full sleep.  */
+  int unslept = 9;
+  while (unslept > 0)
+    unslept = sleep (unslept);
+
   printf ("hello thread\n");
 }