taskwait-depend-1.c 533 B

1234567891011121314151617181920212223242526272829
  1. #ifdef __cplusplus
  2. extern "C"
  3. #endif
  4. void abort (void);
  5. int
  6. main ()
  7. {
  8. int a, b, c, d;
  9. #pragma omp parallel num_threads (4)
  10. #pragma omp single
  11. {
  12. #pragma omp task depend(out : a)
  13. a = 6;
  14. #pragma omp task depend(out : b)
  15. b = 7;
  16. #pragma omp task depend(out : c)
  17. c = 8;
  18. #pragma omp taskwait depend(in : a, c)
  19. d = a + c;
  20. #pragma omp task depend(out : a)
  21. a = 9;
  22. #pragma omp task depend(out : c)
  23. c = 10;
  24. }
  25. if (a != 9 || b != 7 || c != 10 || d != 6 + 8)
  26. abort ();
  27. return 0;
  28. }