1 // RUN: %libomp-compile-and-run 2 #include <stdio.h> 3 #include "omp_testsuite.h" 4 test_omp_get_num_threads()5int test_omp_get_num_threads() 6 { 7 /* checks that omp_get_num_threads is equal to the number of 8 threads */ 9 int nthreads_lib; 10 int nthreads = 0; 11 12 nthreads_lib = -1; 13 14 #pragma omp parallel 15 { 16 #pragma omp critical 17 { 18 nthreads++; 19 } /* end of critical */ 20 #pragma omp single 21 { 22 nthreads_lib = omp_get_num_threads (); 23 } /* end of single */ 24 } /* end of parallel */ 25 return (nthreads == nthreads_lib); 26 } 27 main()28int main() 29 { 30 int i; 31 int num_failed=0; 32 33 for(i = 0; i < REPETITIONS; i++) { 34 if(!test_omp_get_num_threads()) { 35 num_failed++; 36 } 37 } 38 return num_failed; 39 } 40