forked from OSchip/llvm-project
41 lines
934 B
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;
|
|
}
|