C++ named requirements: BasicLockable (since C++11)
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Les BasicLockable exigences décrivent les caractéristiques minimales des types qui fournissent une sémantique de blocage exclusive pour les agents d'exécution (c'est-à-dire les threads).
Table des matières |
Exigences
Pour que le type
L
soit
BasicLockable
, les conditions suivantes doivent être satisfaites pour un objet
m
de type
L
:
| Expression | Préconditions | Effets |
|---|---|---|
| m. lock ( ) | Bloque jusqu'à ce qu'un verrou puisse être acquis pour l'agent d'exécution actuel (thread, processus, tâche). Si une exception est levée, aucun verrou n'est acquis. | |
| m. unlock ( ) |
L'agent d'exécution actuel détient un verrou non partagé sur
m
.
|
Libère le verrou non partagé détenu par l'agent d'exécution.
Ne lève aucune exception. |
Verrous non partagés
Un verrou sur un objet est dit
verrou non partagé
s'il est acquis par un appel à la fonction membre
lock
,
try_lock
,
try_lock_for
, ou
try_lock_until
.
Bibliothèque standard
Les types suivants de la bibliothèque standard satisfont BasicLockable aux exigences :
|
(C++11)
|
fournit une fonction d'exclusion mutuelle de base
(classe) |
|
(C++11)
|
fournit une fonction d'exclusion mutuelle pouvant être verrouillée récursivement par le même thread
(classe) |
|
(C++11)
|
fournit une fonction d'exclusion mutuelle pouvant être verrouillée récursivement
par le même thread et implémente le verrouillage avec un délai d'expiration (classe) |
|
(C++17)
|
fournit une fonction d'exclusion mutuelle partagée
(classe) |
|
(C++14)
|
fournit une fonction d'exclusion mutuelle partagée et implémente le verrouillage avec un délai d'expiration
(classe) |
|
(C++11)
|
fournit une fonction d'exclusion mutuelle qui implémente le verrouillage avec un délai d'expiration
(classe) |