LLVM OpenMP 20.0.0git
taskdep_if0.c
Go to the documentation of this file.
1// RUN: %libomp-compile-and-run
2
3#include <stdio.h>
4#include <stdlib.h>
5#include <omp.h>
6#include "omp_my_sleep.h"
7
8int a = 0;
9
10void task1() {
11 my_sleep(0.5);
12 a = 10;
13}
14
15void task2() {
16 a++;
17}
18
19int main(int argc, char** argv)
20{
21 #pragma omp parallel shared(argc) num_threads(2)
22 {
23 #pragma omp single
24 {
25 #pragma omp task depend(out: a)
26 task1();
27
28 #pragma omp task if(0) depend(inout: a)
29 task2();
30 }
31 }
32 if (a != 11) {
33 fprintf(stderr, "fail: expected 11, but a is %d\n", a);
34 exit(1);
35 } else {
36 printf("pass\n");
37 }
38 return 0;
39}
static void my_sleep(double sleeptime)
Utility function to have a sleep function with better resolution and which only stops one thread.
Definition: omp_my_sleep.h:24
int a
Definition: taskdep_if0.c:8
void task2()
Definition: taskdep_if0.c:15
void task1()
Definition: taskdep_if0.c:10
int main()
Definition: test-touch.c:21