]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/testsuite/gdb.threads/manythreads.c
run copyright.sh for 2011.
[thirdparty/binutils-gdb.git] / gdb / testsuite / gdb.threads / manythreads.c
CommitLineData
899d9e3a 1/* Manythreads test program.
7b6bb8da
JB
2 Copyright 2004, 2006, 2007, 2008, 2009, 2010, 2011
3 Free Software Foundation, Inc.
899d9e3a
JJ
4
5 Written by Jeff Johnston <jjohnstn@redhat.com>
6 Contributed by Red Hat
7
8 This file is part of GDB.
9
10 This program is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
a9762ec7 12 the Free Software Foundation; either version 3 of the License, or
899d9e3a 13 (at your option) any later version.
a9762ec7 14
899d9e3a
JJ
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
a9762ec7 19
899d9e3a 20 You should have received a copy of the GNU General Public License
a9762ec7 21 along with this program. If not, see <http://www.gnu.org/licenses/>. */
899d9e3a 22
7339a42e
JJ
23#include <pthread.h>
24#include <stdio.h>
1e9f977e 25#include <limits.h>
7339a42e
JJ
26
27void *
28thread_function (void *arg)
29{
5bd2f6e2 30 int x = * (int *) arg;
7339a42e
JJ
31
32 printf ("Thread <%d> executing\n", x);
33
34 return NULL;
35}
36
37int
38main (int argc, char **argv)
39{
40 pthread_attr_t attr;
41 pthread_t threads[256];
5bd2f6e2 42 int args[256];
7339a42e
JJ
43 int i, j;
44
45 pthread_attr_init (&attr);
17592de3
PA
46
47#ifdef PTHREAD_STACK_MIN
0057022f 48 pthread_attr_setstacksize (&attr, 2*PTHREAD_STACK_MIN);
17592de3 49#endif
7339a42e
JJ
50
51 /* Create a ton of quick-executing threads, then wait for them to
52 complete. */
53 for (i = 0; i < 1000; ++i)
54 {
55 for (j = 0; j < 256; ++j)
56 {
5bd2f6e2
DJ
57 args[j] = i * 1000 + j;
58 pthread_create (&threads[j], &attr, thread_function, &args[j]);
7339a42e
JJ
59 }
60
61 for (j = 0; j < 256; ++j)
62 {
63 pthread_join (threads[j], NULL);
64 }
65 }
66
67 pthread_attr_destroy (&attr);
68
69 return 0;
70}