1 // RUN: %libomp-compile-and-run
2 // RUN: env KMP_LOCK_KIND=tas %libomp-run
3 // RUN: env KMP_LOCK_KIND=futex %libomp-run
5 #include "omp_testsuite.h"
9 int test_omp_test_lock()
11 int nr_threads_in_single
= 0;
13 int nr_iterations
= 0;
17 #pragma omp parallel shared(lck)
20 for (i
= 0; i
< LOOPCOUNT
; i
++) {
21 while (!omp_test_lock (&lck
))
24 nr_threads_in_single
++;
27 nr_threads_in_single
--;
28 result
= result
+ nr_threads_in_single
;
29 omp_unset_lock (&lck
);
32 omp_destroy_lock(&lck
);
33 return ((result
== 0) && (nr_iterations
== LOOPCOUNT
));
41 for(i
= 0; i
< REPETITIONS
; i
++) {
42 if(!test_omp_test_lock()) {