Namespaces
Variants

std::shared_lock<Mutex>:: try_lock_for

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 Rep, class Period >
bool try_lock_for ( const std:: chrono :: duration < Rep,Period > & timeout_duration ) ;
(depuis C++14)

Tente de verrouiller le mutex associé en mode partagé. Bloque jusqu'à ce que la durée spécifiée timeout_duration se soit écoulée ou que le verrou soit acquis, selon la première éventualité. En cas d'acquisition réussie du verrou, retourne true , sinon retourne false . Appelle effectivement mutex ( ) - > try_lock_shared_for ( timeout_duration ) .

Cette fonction peut se bloquer plus longtemps que timeout_duration en raison de délais de planification ou de conflits de ressources.

La norme recommande qu'une horloge stable soit utilisée pour mesurer la durée. Si une implémentation utilise plutôt une horloge système, le temps d'attente peut également être sensible aux ajustements d'horloge.

std::system_error est levée s'il n'y a pas de mutex associé ou si le mutex est déjà verrouillé.

Le comportement est indéfini si Mutex ne satisfait pas aux exigences SharedTimedLockable .

Table des matières

Paramètres

timeout_duration - durée maximale de blocage

Valeur de retour

true si la propriété du mutex a été acquise avec succès, false sinon.

Exceptions

  • Toute exception levée par mutex ( ) - > try_lock_shared_for ( timeout_duration ) .

Exemple

Voir aussi

tente de verrouiller (c'est-à-dire de prendre la possession de) le mutex TimedLockable associé, retourne si le mutex est resté indisponible pendant la durée spécifiée
(fonction membre publique de std::unique_lock<Mutex> )
verrouille le mutex associé
(fonction membre publique)
tente de verrouiller le mutex associé
(fonction membre publique)
tente de verrouiller le mutex associé, jusqu'à un point temporel spécifié
(fonction membre publique)
déverrouille le mutex associé
(fonction membre publique)