diff options
Diffstat (limited to 'gdb/testsuite/gdb.mi/pthreads.c')
-rw-r--r-- | gdb/testsuite/gdb.mi/pthreads.c | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/gdb/testsuite/gdb.mi/pthreads.c b/gdb/testsuite/gdb.mi/pthreads.c index 1ba5a15f9fd..0d8f1b616fc 100644 --- a/gdb/testsuite/gdb.mi/pthreads.c +++ b/gdb/testsuite/gdb.mi/pthreads.c @@ -1,3 +1,28 @@ +/* Pthreads test program. + Copyright 1996, 2002, 2003, 2004 + Free Software Foundation, Inc. + + Written by Keith Seitz of Red Hat. + Copied from gdb.threads/pthreads.c. + Contributed by Red Hat. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + #include <stdio.h> #include <pthread.h> @@ -17,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"); } @@ -26,7 +58,7 @@ void done_making_threads (void) { /* Nothing */ -}; +} void create_thread (void) |