std::stop_source:: request_stop
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Modifiers | ||||
|
stop_source::request_stop
|
||||
| Observers | ||||
| Non-member functions | ||||
| Helper tags | ||||
|
bool
request_stop
(
)
noexcept
;
|
(depuis C++20) | |
Émet une demande d'arrêt vers l'état d'arrêt, si l'objet
stop_source
possède un état d'arrêt et qu'une demande d'arrêt n'a pas encore été effectuée.
La détermination est effectuée de manière atomique, et si l'arrêt a été demandé, l'état d'arrêt est mis à jour atomiquement pour éviter les conditions de concurrence, de telle sorte que :
-
stop_requested
(
)
et
stop_possible
(
)
peuvent être invoqués simultanément sur d'autres
stop_tokenetstop_sourcedu même état d'arrêt ; -
request_stop
(
)
peut être invoqué simultanément sur d'autres objets
stop_source, et un seul effectuera réellement la demande d'arrêt.
Cependant, consultez la section Notes.
Table des matières |
Paramètres
(aucun)
Valeur de retour
true
si l'objet
stop_source
possède un état d'arrêt et que cet appel a effectué une demande d'arrêt, sinon
false
.
Postconditions
stop_possible ( ) est false ou stop_requested ( ) est true .
Notes
Si la
request_stop
(
)
émet effectivement une demande d'arrêt (c'est-à-dire retourne
true
), alors tous les
stop_callback
enregistrés pour le même état d'arrêt associé seront invoqués de manière synchrone, sur le même thread où
request_stop
(
)
est émise. Si une invocation d'un callback se termine par une exception,
std::terminate
est appelée.
Si l'objet
stop_source
possède un état d'arrêt mais qu'une demande d'arrêt a déjà été effectuée, cette fonction retourne
false
. Cependant, il n'y a aucune garantie qu'un autre objet
stop_source
qui vient juste (avec succès) de demander l'arrêt ne soit pas encore en train d'invoquer une fonction
stop_callback
.
Si la
request_stop
(
)
émet effectivement une demande d'arrêt (c'est-à-dire, retourne
true
), alors toutes les variables de condition de type de base
std::condition_variable_any
enregistrées avec une attente interruptible pour les
stop_token
associés à l'état d'arrêt du
stop_source
seront notifiées.
Exemple
|
Cette section est incomplète
Raison : aucun exemple |