OpenMP-Examples/tasking/sources/task_detach.1.c
2021-08-17 09:11:55 -07:00

35 lines
611 B
C

/*
* @@name: task_detach.1c
* @@type: C
* @@compilable: yes
* @@linkable: no
* @@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;
}