/* { dg-do run } */

#include <omp.h>
#include <assert.h>

/* Test tasks with detach clause.  Each thread spawns off a chain of tasks,
   that can then be executed by any available thread.  Each thread uses
   taskwait to wait for the child tasks to complete.  */

int main (void)
{
  int x = 0, y = 0, z = 0;
  int thread_count;
  omp_event_handle_t detach_event1, detach_event2;

  #pragma omp parallel private (detach_event1, detach_event2)
  {
    #pragma omp single
      thread_count = omp_get_num_threads ();

    #pragma omp task detach (detach_event1) untied
      #pragma omp atomic update
	x++;

    #pragma omp task detach (detach_event2) untied
    {
      #pragma omp atomic update
	y++;
      omp_fulfill_event (detach_event1);
    }

    #pragma omp task untied
    {
      #pragma omp atomic update
	z++;
      omp_fulfill_event (detach_event2);
    }

    #pragma omp taskwait
  }

  assert (x == thread_count);
  assert (y == thread_count);
  assert (z == thread_count);
}
