28
subroutine omp_set_lock(lock)
integer(kind = omp_lock_kind) :: lock
Переводит
потоки
из
состояния
выполнения
в
состояние
ожидания
до
тех
пор
,
пока
блокировка
,
связанная
с
идентификатором
lock
,
не
окажется
доступной
.
Поток
становится
владельцем
доступной
блокировки
.
void omp_unset_lock(omp_lock_t *lock);
subroutine omp_unset_lock(lock)
integer(kind = omp_lock_kind) :: lock
После
выполнения
данного
вызова
поток
перестает
быть
владельцем
блокировки
,
связанной
с
идентификатором
lock
.
Если
поток
не
был
владельцем
блокировки
,
результат
вызова
не
определен
.
int omp_test_lock(omp_lock_t *lock);
logical function omp_test_lock(lock)
integer(kind = omp_lock_kind) :: lock
Возвращает
значение
«
истина
»,
если
блокировка
связана
с
идентификатором
lock
.
void omp_init_nest_lock(omp_nest_lock_t *lock);
subroutine omp_init_nest_lock(lock)
integer(kind = omp_nest_lock_kind) :: lock
Инициализирует
вложенную
блокировку
,
связанную
с
идентификатором
lock
.
void omp_destroy_nest_lock(omp_nest_lock_t *lock);
subroutine omp_destroy_nest_lock(lock)
integer(kind = omp_nest_lock_kind) :: lock
Переводит
вложенную
блокировку
,
связанную
с
идентификатором
lock
,
в
состояние
неопределенности
.
void omp_set_nest_lock(omp_nest_lock_t *lock);
subroutine omp_set_nest_lock(lock)
integer(kind = omp_nest_lock_kind) :: lock
Переводит
выполняющиеся
потоки
в
состояние
ожидания
до
тех
пор
,
пока
вложенная
блокировка
,
связанная
с
идентификатором
lock
,
не
станет
доступной
.
Поток
становится
владельцем
блокировки
.