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

31 lines
609 B
C

/*
* @@name: tasking.10
* @@type: C
* @@operation: compile
* @@expect: success
* @@version: omp_3.0
*/
#include <omp.h>
void work() {
omp_lock_t lock;
omp_init_lock(&lock);
#pragma omp parallel
{
int i;
#pragma omp for
for (i = 0; i < 100; i++) {
#pragma omp task
{
// lock is shared by default in the task
omp_set_lock(&lock);
// Capture data for the following task
#pragma omp task
// Task Scheduling Point 1
{ /* do work here */ }
omp_unset_lock(&lock);
}
}
}
omp_destroy_lock(&lock);
}