1 #include <unistd.h>
2 #include <stdlib.h>
3
4 int
5 main ()
6 {
7 int a[128];
8 #pragma omp parallel num_threads(8)
9 {
10 #pragma omp barrier
11 #pragma omp for nowait schedule (dynamic, 2) order(reproducible:concurrent)
12 for (int i = 0; i < 128; i++)
13 {
14 a[i] = i;
15 if (i == 0)
16 usleep (20);
17 else if (i == 17)
18 usleep (40);
19 }
20 #pragma omp for nowait schedule (dynamic, 2) order(reproducible:concurrent)
21 for (int i = 0; i < 128; i++)
22 a[i] += i;
23 }
24 for (int i = 0; i < 128; i++)
25 if (a[i] != 2 * i)
26 abort ();
27 return 0;
28 }