update copyright year printed by GDB, GDBserver and gdbreplay.
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.threads / print-threads.c
1 #include <stdio.h>
2 #include <unistd.h>
3 #include <stdlib.h>
4 #include <pthread.h>
5
6 void *thread_function(void *arg); /* Pointer to function executed by each thread */
7
8 int slow = 0;
9
10 #define NUM 5
11
12 int main() {
13 int res;
14 pthread_t threads[NUM];
15 void *thread_result;
16 int args[NUM];
17 int i;
18
19 for (i = 0; i < NUM; i++)
20 {
21 args[i] = i;
22 res = pthread_create(&threads[i], NULL, thread_function, (void *)&args[i]);
23 }
24
25 for (i = 0; i < NUM; i++)
26 res = pthread_join(threads[i], &thread_result);
27
28 printf ("Done\n");
29
30 if (slow)
31 sleep (4);
32
33 exit(EXIT_SUCCESS);
34 }
35
36 void *thread_function(void *arg) {
37 int my_number = *(int *)arg;
38 int rand_num;
39
40 printf ("Print 1, thread %d\n", my_number);
41 sleep (1);
42
43 if (slow)
44 {
45 printf ("Print 2, thread %d\n", my_number);
46 sleep (1);
47 printf ("Print 3, thread %d\n", my_number);
48 sleep (1);
49 printf ("Print 4, thread %d\n", my_number);
50 sleep (1);
51 printf ("Print 5, thread %d\n", my_number);
52 sleep (1);
53 }
54
55 printf("Bye from %d\n", my_number);
56 pthread_exit(NULL);
57 }
58
This page took 0.030678 seconds and 4 git commands to generate.