C++ named requirements: SharedLockable (since C++14)
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Les SharedLockable exigences décrivent les caractéristiques minimales des types qui fournissent une sémantique de blocage partagé pour les agents d'exécution (c'est-à-dire les threads).
Table des matières |
Exigences
Pour que le type
L
soit
SharedLockable
, les conditions suivantes doivent être satisfaites pour un objet
m
de type
L
:
| Expression | Préconditions | Effets | Valeur de retour |
|---|---|---|---|
| m. lock_shared ( ) | Bloque jusqu'à ce qu'un verrou puisse être obtenu pour l'agent d'exécution actuel (thread, processus, tâche). Si une exception est levée, aucun verrou n'est obtenu. | ||
| m. try_lock_shared ( ) | Tente d'obtenir un verrou pour l'agent d'exécution actuel (thread, processus, tâche) sans bloquer. Si une exception est levée, aucun verrou n'est obtenu. | true si le verrou a été obtenu, false sinon | |
| m. unlock_shared ( ) |
L'agent d'exécution actuel détient un verrou partagé sur
m
.
|
Libère le verrou partagé détenu par l'agent d'exécution.
Ne lève aucune exception. |
Verrous partagés
Un verrou sur un objet est considéré comme un
verrou partagé
s'il est acquis par un appel à la fonction membre
lock_shared
,
try_lock_shared
,
try_lock_shared_for
, ou
try_lock_shared_until
.
Bibliothèque standard
Les types suivants de la bibliothèque standard satisfont les exigences SharedLockable :
|
(C++17)
|
fournit une fonctionnalité d'exclusion mutuelle partagée
(classe) |
|
(C++14)
|
fournit une fonctionnalité d'exclusion mutuelle partagée et implémente le verrouillage avec un délai d'expiration
(classe) |