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