OpenMP-Examples/sources/Example_tasking.2c.c
2015-01-13 11:38:24 -08:00

23 lines
512 B
C

/*
* @@name: tasking.2c
* @@type: C
* @@compilable: yes
* @@linkable: no
* @@expect: success
*/
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);
}