Namespaces
Variants

std::timed_mutex:: try_lock_until

From cppreference.net

Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
template < class Clock, class Duration >
bool try_lock_until ( const std:: chrono :: time_point < Clock, Duration > & timeout_time ) ;
(C++11 이후)

뮤텍스를 잠그려 시도합니다. 지정된 timeout_time 에 도달할 때까지(타임아웃) 또는 락을 획득할 때까지(뮤텍스 소유) 블록킹되며, 먼저 도달하는 조건에 따라 동작합니다. 락 획득에 성공하면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.

만약 timeout_time 이 이미 지났다면, 이 함수는 try_lock() 과 같이 동작합니다.

Clock Clock 요구 사항을 충족해야 합니다. std:: chrono :: is_clock_v < Clock > false 인 경우 프로그램의 형식이 올바르지 않습니다. (C++20부터)

표준은 timeout_time 에 연결된 클럭을 사용할 것을 권장하며, 이 경우 클럭의 조정이 고려될 수 있습니다. 따라서 블록의 지속 시간은 호출 시점의 timeout_time - Clock :: now ( ) 보다 길거나 짧을 수 있으며, 이는 조정 방향과 구현 시 이를 준수하는지 여부에 따라 달라집니다. 또한 이 함수는 프로세스 스케줄링이나 자원 경합 지연으로 인해 timeout_time 이 경과한 이후까지 블록될 수 있습니다.

try_lock() 과 마찬가지로, 이 함수는 허위 실패가 가능하며 false 를 반환할 수 있습니다. 이는 timeout_time 이전 시점에 뮤텍스가 다른 스레드에 의해 잠겨 있지 않은 경우에도 발생할 수 있습니다.

동일한 뮤텍스에 대한 이전 unlock() 연산은 이 연산이 true 를 반환할 경우 synchronizes-with (정의는 std::memory_order 참조) 관계가 성립됩니다.

만약 try_lock_until 을 이미 뮤텍스를 소유한 스레드가 호출하면, 동작은 정의되지 않습니다.

목차

매개변수

timeout_time - 블록이 최대한 대기할 시간 포인트

반환값

true 락이 성공적으로 획득된 경우, 그렇지 않으면 false .

예외

timeout_time 에 의해 발생하는 모든 예외 (표준 라이브러리에서 제공하는 클록, 시간 포인트, 지속 시간은 절대 예외를 발생시키지 않음).

예제

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 2093 C++11 try_lock_until 예외를 던지지 않음 타임아웃 관련 예외를 던짐

참고 항목

뮤텍스를 잠금, 사용 가능하지 않으면 차단
(public member function)
뮤텍스 잠금을 시도, 사용 가능하지 않으면 반환
(public member function)
뮤텍스 잠금을 시도, 지정된 시간 동안
사용 불가능한 경우 반환
(public member function)
뮤텍스 잠금 해제
(public member function)
C documentation for mtx_timedlock