OpenMP-Examples/tasking/sources/task_detach.1.c
2022-11-04 09:35:42 -07:00

34 lines
575 B
C

/*
* @@name: task_detach.1
* @@type: C
* @@operation: compile
* @@expect: success
* @@version: omp_5.0
*/
#include <omp.h>
void async_work(void (*)(void*), void*);
void work();
int main() {
int async=1;
#pragma omp parallel
#pragma omp masked
{
omp_event_handle_t event;
#pragma omp task detach(event)
{
if(async) {
async_work( (void (*)(void*)) omp_fulfill_event, (void*) event );
} else {
work();
omp_fulfill_event(event);
}
}
// Other work
#pragma omp taskwait
}
return 0;
}