diff options
author | Doug Evans <dje@google.com> | 2009-03-27 02:44:51 +0000 |
---|---|---|
committer | Doug Evans <dje@google.com> | 2009-03-27 02:44:51 +0000 |
commit | 88fc996f5819bf526d17f6f273135943ac41ab38 (patch) | |
tree | 5673e8b38801dcca18d1b339e5db4b11fb805b6d /gdb/testsuite/gdb.mi/non-stop-exit.c | |
parent | d34b50065a9298eabeaf74f2729faa66a865cccc (diff) | |
download | gdb-88fc996f5819bf526d17f6f273135943ac41ab38.zip gdb-88fc996f5819bf526d17f6f273135943ac41ab38.tar.gz gdb-88fc996f5819bf526d17f6f273135943ac41ab38.tar.bz2 |
* thread.c (do_restore_current_thread_cleanup): Redo test for
whether to restore old->inferior_ptid.
* gdb.mi/mi-nonstop-exit.exp: New file.
* gdb.mi/non-stop-exit.c: New file.
Diffstat (limited to 'gdb/testsuite/gdb.mi/non-stop-exit.c')
-rw-r--r-- | gdb/testsuite/gdb.mi/non-stop-exit.c | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.mi/non-stop-exit.c b/gdb/testsuite/gdb.mi/non-stop-exit.c new file mode 100644 index 0000000..165ae84 --- /dev/null +++ b/gdb/testsuite/gdb.mi/non-stop-exit.c @@ -0,0 +1,54 @@ +/* Test program exit in non-stop mode. + Copyright 2009 Free Software Foundation, Inc. + + 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 3 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, see <http://www.gnu.org/licenses/>. */ + +#include <pthread.h> +#include <stdio.h> + +#define NTHREADS 4 +void* thread_function (void*); + +void * +thread_function (void *arg) +{ + int x = * (int *) arg; + + printf ("Thread <%d> executing\n", x); + + return NULL; +} + +int +main () +{ + pthread_t thread_id[NTHREADS]; + int args[NTHREADS]; + int i; + + for (i = 0; i < NTHREADS; ++i) + { + args[i] = i; + pthread_create (&thread_id[i], NULL, thread_function, &args[i]); + } + + for (i = 0; i < NTHREADS; ++i) + { + pthread_join (thread_id[i], NULL); + } + + return 0; +} |