6 /* Test tasks with detach clause. Each thread spawns off a chain of tasks
7 in a taskgroup, that can then be executed by any available thread. */
11 int x
= 0, y
= 0, z
= 0;
13 omp_event_handle_t detach_event1
, detach_event2
;
15 #pragma omp parallel private (detach_event1, detach_event2)
19 thread_count
= omp_get_num_threads ();
21 #pragma omp task detach (detach_event1) untied
22 #pragma omp atomic update
25 #pragma omp task detach (detach_event2) untied
27 #pragma omp atomic update
29 omp_fulfill_event (detach_event1
);
32 #pragma omp task untied
34 #pragma omp atomic update
36 omp_fulfill_event (detach_event2
);
40 assert (x
== thread_count
);
41 assert (y
== thread_count
);
42 assert (z
== thread_count
);