Namespaces
Variants

mtx_timedlock

From cppreference.net
헤더 파일에 정의됨 <threads.h>
int mtx_timedlock ( mtx_t * restrict mutex,
const struct timespec * restrict time_point ) ;
(C11 이후)

현재 스레드를 mutex 가 가리키는 뮤텍스가 잠길 때까지, 또는 time_point 가 가리키는 TIME_UTC 기반 절대 캘린더 시간 포인트에 도달할 때까지 블록합니다.

이 함수는 절대 시간을 취하므로, 지속 시간이 필요한 경우 달력 시간 포인트를 수동으로 계산해야 합니다.

현재 스레드가 이미 뮤텍스를 잠그고 있고 해당 뮤텍스가 재귀적이지 않은 경우, 동작은 정의되지 않습니다.

뮤텍스가 타임아웃을 지원하지 않는 경우 동작은 정의되지 않습니다.

동일한 뮤텍스에 대한 이전의 mtx_unlock 호출은 이 연산과 동기화됩니다 (이 연산이 성공할 경우). 또한 주어진 뮤텍스에 대한 모든 lock/unlock 연산들은 단일 전체 순서를 형성합니다 (원자 변수의 수정 순서와 유사하게)

목차

매개변수

mutex - 잠글 뮤텍스에 대한 포인터
time_point - 타임아웃까지 대기할 절대 캘린더 시간에 대한 포인터

반환값

thrd_success 성공한 경우, thrd_timedout 뮤텍스가 잠기기 전에 타임아웃 시간에 도달한 경우, thrd_error 오류가 발생한 경우.

참고문헌

  • C17 표준 (ISO/IEC 9899:2018):
  • 7.26.4.4 mtx_timedlock 함수 (p: 278)
  • C11 표준 (ISO/IEC 9899:2011):
  • 7.26.4.4 mtx_timedlock 함수 (p: 381-382)

참고 항목

초와 나노초 단위의 시간
(구조체)
뮤텍스를 잠글 때까지 블록
(함수)
뮤텍스를 잠그거나 이미 잠겨 있으면 블록하지 않고 반환
(함수)
뮤텍스를 해제
(함수)
C++ documentation for timed_mutex::try_lock_until
C++ documentation for recursive_timed_mutex::try_lock_until

외부 링크

GNU GCC Libc 매뉴얼: ISO-C-Mutexes