• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // RUN: %libomp-compile-and-run
2 
3 #include <stdio.h>
4 #include <stdlib.h>
5 #include <omp.h>
6 #include "omp_my_sleep.h"
7 
8 int a = 0;
9 
task1()10 void task1() {
11   my_sleep(0.5);
12   a = 10;
13 }
14 
task2()15 void task2() {
16   a++;
17 }
18 
main(int argc,char ** argv)19 int main(int argc, char** argv)
20 {
21   #pragma omp parallel shared(argc) num_threads(2)
22   {
23     #pragma omp single
24     {
25       #pragma omp task depend(out: a)
26       task1();
27 
28       #pragma omp task if(0) depend(inout: a)
29       task2();
30     }
31   }
32   if (a != 11) {
33     fprintf(stderr, "fail: expected 11, but a is %d\n", a);
34     exit(1);
35   } else {
36     printf("pass\n");
37   }
38   return 0;
39 }
40