std::shared_lock<Mutex>:: try_lock_for
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Shared locking | ||||
|
shared_lock::try_lock_for
|
||||
| Modifiers | ||||
| Observers | ||||
| Non-member functions | ||||
|
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 ) .
- S'il n'y a pas de mutex associé, std::system_error avec un code d'erreur de std::errc::operation_not_permitted .
- Si le mutex est déjà verrouillé, std::system_error avec un code d'erreur de std::errc::resource_deadlock_would_occur .
Exemple
|
Cette section est incomplète
Raison : aucun 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) |