Spec-Zone.ru › C

mtx_timedlock

Определено в заголовочном файле <threads.h>
int mtx_timedlock( mtx_t *restrict mutex,
                   const struct timespec *restrict time_point );
(с C11)

Заблокирует текущую нить до тех пор, пока мьютекс, на который указывает mutex, не будет заблокирован или пока не будет достигнуто абсолютное время в календаре, указанное в time_point.

Поскольку эта функция принимает абсолютное время, если требуется временной интервал, необходимо вручную вычислить точку времени календаря.

Поведение не определено, если текущая нить уже заблокировала мьютекс, а мьютекс не рекурсивный.

Поведение не определено, если мьютекс не поддерживает таймаут.

Предыдущие вызовы mtx_unlock для того же мьютекса синхронизированы с этой операцией (если эта операция выполняется успешно), и все операции блокировки/разблокировки для данного мьютекса образуют единый общий порядок (похожий на порядок модификации атомарного значения).

Параметры

mutex - указатель на мьютекс для блокировки
time_point - указатель на абсолютное время календаря, до которого ожидать таймаут

Возвращаемое значение

thrd_success при успешном выполнении, thrd_timedout если время таймаута истекло до блокировки мьютекса, thrd_error если произошла ошибка.

Ссылки

  • Стандарт C17 (ISO/IEC 9899:2018):
    • 7.26.4.4 Функция mtx_timedlock (стр. 278)
  • Стандарт C11 (ISO/IEC 9899:2011):
    • 7.26.4.4 Функция mtx_timedlock (стр. 381-382)

См. также

timespec
(C11)
время в секундах и наносекундах
(структура)
mtx_lock
(C11)
блокирует до тех пор, пока мьютекс не будет заблокирован
(функция)
mtx_trylock
(C11)
блокирует мьютекс или возвращается без блокировки, если мьютекс уже заблокирован
(функция)
mtx_unlock
(C11)
разблокирует мьютекс
(функция)
Документация C++ для timed_mutex::try_lock_until
Документация C++ для recursive_timed_mutex::try_lock_until

Внешние ссылки

Справочник GNU GCC Libc: ISO-C-Мьютексы

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/thread/mtx_timedlock

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API