llvm-project/openmp/runtime/test/env/omp_wait_policy.c

41 lines
934 B
C

// RUN: %libomp-compile && env OMP_WAIT_POLICY=active %libomp-run active
// RUN: %libomp-compile && env OMP_WAIT_POLICY=passive %libomp-run passive
//
// OMP_WAIT_POLICY=active should imply blocktime == INT_MAX
// i.e., threads spin-wait forever
// OMP_WAIT_POLICY=passive should imply blocktime == 0
// i.e., threads immediately sleep
#include <stdio.h>
#include <string.h>
#include <limits.h>
#include "omp_testsuite.h"
void usage() {
fprintf(stderr, "usage: omp_wait_policy active|passive\n");
}
int main(int argc, char** argv)
{
int blocktime, retval=1;
const char* env_var_value;
if (argc != 2) {
usage();
return 1;
}
blocktime = kmp_get_blocktime();
env_var_value = argv[1];
if (!strcmp(env_var_value, "active")) {
retval = (blocktime != INT_MAX);
} else if (!strcmp(env_var_value, "passive")) {
retval = (blocktime != 0);
} else {
usage();
retval = 1;
}
return retval;
}