mirror of
https://github.com/OpenMP/Examples.git
synced 2025-04-22 13:51:23 +01:00
23 lines
518 B
C
23 lines
518 B
C
/*
|
|
* @@name: tasking.2
|
|
* @@type: C
|
|
* @@operation: compile
|
|
* @@expect: success
|
|
* @@version: omp_3.0
|
|
*/
|
|
struct node {
|
|
struct node *left;
|
|
struct node *right;
|
|
};
|
|
extern void process(struct node *);
|
|
void postorder_traverse( struct node *p ) {
|
|
if (p->left)
|
|
#pragma omp task // p is firstprivate by default
|
|
postorder_traverse(p->left);
|
|
if (p->right)
|
|
#pragma omp task // p is firstprivate by default
|
|
postorder_traverse(p->right);
|
|
#pragma omp taskwait
|
|
process(p);
|
|
}
|