2022-11-04 09:35:42 -07:00

27 lines
598 B
C

/*
* @@name: task_dep.10
* @@type: C
* @@operation: compile
* @@expect: success
* @@version: omp_5.0
*/
extern int longTaskA(), shortTaskB();
extern int shortTaskAC(int,int), longTaskBC(int,int);
void foo (void)
{
int a, b, c;
c = 0;
#pragma omp parallel
#pragma omp single
{
#pragma omp task depend(out: a)
a = longTaskA();
#pragma omp task depend(out: b)
b = shortTaskB();
#pragma omp task depend(in: a) depend(mutexinoutset: c)
c = shortTaskAC(a,c);
#pragma omp task depend(in: b) depend(mutexinoutset: c)
c = longTaskBC(b,c);
}
}