mirror of
https://github.com/OpenMP/Examples.git
synced 2025-04-23 06:11:22 +01:00
27 lines
598 B
C
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);
|
|
}
|
|
}
|