Поделиться через


3.2.5 Функции omp_test_lock и omp_test_nest_lock

Эти функции попытаются установить блокировку, но не блокируют выполнение потока. Формат следующий:

#include <omp.h>
int omp_test_lock(omp_lock_t *lock);
int omp_test_nest_lock(omp_nest_lock_t *lock);

Аргумент должен указывать на инициализированной переменной блокировки. Эти функции попытаются установить блокировку точно так же, как и omp_set_lock и omp_set_nest_lock, за исключением того, что они не блокируют выполнение потока.

Для простой блокировки, omp_test_lock функция возвращает ненулевое значение, если блокировка успешно установлено; в противном случае он возвращает ноль.

Для nestable блокировки, omp_test_nest_lock функция возвращает новый счетчик вложения, если блокировка успешно установлено; в противном случае он возвращает ноль.