(root)/
gcc-13.2.0/
libgomp/
testsuite/
libgomp.c-c++-common/
order-reproducible-2.c
       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  }