| ! { dg-do run } |
| |
| ! Test the task detach clause used together with dependencies. |
| |
| program task_detach_3 |
| |
| use omp_lib |
| |
| integer (kind=omp_event_handle_kind) :: detach_event |
| integer :: x = 0, y = 0, z = 0 |
| integer :: dep |
| |
| !$omp parallel |
| !$omp single |
| !$omp task depend (out:dep) detach (detach_event) |
| x = x + 1 |
| !$omp end task |
| |
| !$omp task |
| y = y + 1 |
| call omp_fulfill_event (detach_event) |
| !$omp end task |
| |
| !$omp task depend (in:dep) |
| z = z + 1 |
| !$omp end task |
| !$omp end single |
| !$omp end parallel |
| |
| if (x /= 1) stop 1 |
| if (y /= 1) stop 2 |
| if (z /= 1) stop 3 |
| end program |