brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · e4aaa51 Raw
63 lines · c
1// RUN: %libomp-compile-and-run2 3// Linking fails for icc 18/194// UNSUPPORTED: icc-18, icc-195 6#include <stdio.h>7#include "omp_testsuite.h"8 9int test_omp_pause_resource() {10  int fails, nthreads, my_dev;11 12  fails = 0;13  nthreads = 0;14  my_dev = omp_get_initial_device();15 16#pragma omp parallel17#pragma omp single18  nthreads = omp_get_num_threads();19 20  if (omp_pause_resource(omp_pause_soft, my_dev))21    fails++;22 23#pragma omp parallel shared(nthreads)24#pragma omp single25  nthreads = omp_get_num_threads();26 27  if (nthreads == 0)28    fails++;29  if (omp_pause_resource(omp_pause_hard, my_dev))30    fails++;31  nthreads = 0;32 33#pragma omp parallel shared(nthreads)34#pragma omp single35  nthreads = omp_get_num_threads();36 37  if (nthreads == 0)38    fails++;39  if (omp_pause_resource_all(omp_pause_soft))40    fails++;41  nthreads = 0;42 43#pragma omp parallel shared(nthreads)44#pragma omp single45  nthreads = omp_get_num_threads();46 47  if (nthreads == 0)48    fails++;49  return fails == 0;50}51 52int main() {53  int i;54  int num_failed = 0;55 56  for (i = 0; i < REPETITIONS; i++) {57    if (!test_omp_pause_resource()) {58      num_failed++;59    }60  }61  return num_failed;62}63