#include #include int main () { int x = 0, y = 0; #pragma omp parallel shared(x, y) #pragma omp master { #pragma omp task depend(out:y) shared(x, y) { sleep (1); x = 1; y = 1; } #pragma omp task depend(inout:y) shared(x, y) { if (x != 1 || y != 1) abort (); y++; } } if (x != 1 || y != 2) abort (); x = 0; y = 0; #pragma omp parallel #pragma omp master { #pragma omp task depend(out:y) { sleep (1); x = 1; y = 1; } #pragma omp task depend(inout:y) { if (x != 1 || y != 1) abort (); y++; } } if (x != 1 || y != 2) abort (); return 0; }