Namespaces
Variants

mtx_timedlock

From cppreference.net
Definido en el encabezado <threads.h>
int mtx_timedlock ( mtx_t * restrict mutex,
const struct timespec * restrict time_point ) ;
(desde C11)

Bloquea el hilo actual hasta que el mutex apuntado por mutex sea bloqueado o hasta que se alcance el punto de tiempo calendario absoluto basado en TIME_UTC apuntado por time_point .

Dado que esta función toma un tiempo absoluto, si se requiere una duración, el punto de tiempo del calendario debe calcularse manualmente.

El comportamiento es indefinido si el hilo actual ya ha bloqueado el mutex y el mutex no es recursivo.

El comportamiento es indefinido si el mutex no admite tiempo de espera.

Las llamadas previas a mtx_unlock en el mismo mutex sincronizan-con esta operación (si esta operación tiene éxito), y todas las operaciones de bloqueo/desbloqueo en cualquier mutex dado forman un único orden total (similar al orden de modificación de un atómico)

Contenidos

Parámetros

mutex - puntero al mutex a bloquear
time_point - puntero al tiempo calendario absoluto hasta el cual esperar por el timeout

Valor de retorno

thrd_success si es exitoso, thrd_timedout si se alcanza el tiempo de espera antes de que el mutex sea bloqueado, thrd_error si ocurre un error.

Referencias

  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.26.4.4 La función mtx_timedlock (p: 278)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.26.4.4 La función mtx_timedlock (p: 381-382)

Véase también

tiempo en segundos y nanosegundos
(estructura)
bloquea hasta adquirir un mutex
(función)
adquiere un mutex o retorna sin bloquear si ya está bloqueado
(función)
libera un mutex
(función)
Documentación de C++ para timed_mutex::try_lock_until
Documentación de C++ para recursive_timed_mutex::try_lock_until

Enlaces externos

Manual de GNU GCC Libc: ISO-C-Mutexes