(root)/
gcc-13.2.0/
libgomp/
testsuite/
libgomp.c-c++-common/
cancel-taskgroup-2.c
       1  /* { dg-do run } */
       2  /* { dg-set-target-env-var OMP_CANCELLATION "true" } */
       3  
       4  #include <stdlib.h>
       5  #include <unistd.h>
       6  #include <omp.h>
       7  
       8  int
       9  main ()
      10  {
      11    #pragma omp parallel
      12    #pragma omp taskgroup
      13    #pragma omp task
      14    {
      15      #pragma omp cancel taskgroup
      16      if (omp_get_cancellation ())
      17        abort ();
      18    }
      19    #pragma omp parallel
      20    {
      21      #pragma omp barrier
      22      #pragma omp single
      23      #pragma omp taskgroup
      24      {
      25        int i;
      26        for (i = 0; i < 50; i++)
      27  	#pragma omp task
      28  	{
      29  	  #pragma omp cancellation point taskgroup
      30  	  usleep (30);
      31  	  #pragma omp cancel taskgroup if (i > 5)
      32  	}
      33      }
      34      usleep (10);
      35    }
      36    return 0;
      37  }