std:: stop_token
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Modifiers | ||||
| Observers | ||||
| Non-member functions | ||||
|
Défini dans l'en-tête
<stop_token>
|
||
|
class
stop_token
;
|
(depuis C++20) | |
La classe
stop_token
fournit les moyens de vérifier si une demande d'arrêt a été effectuée ou peut être effectuée, pour son objet
std::stop_source
associé. Il s'agit essentiellement d'une "vue" thread-safe de l'état d'arrêt associé.
Le
stop_token
peut également être passé au constructeur de
std::stop_callback
, de sorte que le rappel sera invoqué si la
stop_token
associée à la
std::stop_source
est demandée d'arrêter. Et le
stop_token
peut être passé aux fonctions d'attente interruptibles de
std::condition_variable_any
, pour interrompre l'attente de la variable condition si un arrêt est demandé.
Table des matières |
Modèles d'alias de membre
| Type | Définition |
| callback_type < Callback > (depuis C++26) | std:: stop_callback < Callback > |
Fonctions membres
construit un nouvel objet
stop_token
(fonction membre publique) |
|
détruit l'objet
stop_token
(fonction membre publique) |
|
assigne l'objet
stop_token
(fonction membre publique) |
|
Modificateurs |
|
échange deux objets
stop_token
(fonction membre publique) |
|
Observateurs |
|
|
vérifie si l'état d'arrêt associé a été demandé
(fonction membre publique) |
|
|
vérifie si l'état d'arrêt associé peut être demandé
(fonction membre publique) |
|
Fonctions non membres
|
(C++20)
|
compare deux objets
std::stop_token
(fonction) |
|
(C++20)
|
spécialise l'algorithme
std::swap
(fonction) |
Notes
Un objet
stop_token
n'est généralement pas construit indépendamment, mais est plutôt récupéré depuis un
std::jthread
ou un
std::stop_source
. Cela lui permet de partager le même état d'arrêt associé que le
std::jthread
ou le
std::stop_source
.
| Macro de test de fonctionnalité | Valeur | Std | Fonctionnalité |
|---|---|---|---|
__cpp_lib_jthread
|
201911L
|
(C++20) | Stop token et joining thread |
Exemple
#include <iostream> #include <thread> using namespace std::literals::chrono_literals; void f(std::stop_token stop_token, int value) { while (!stop_token.stop_requested()) { std::cout << value++ << ' ' << std::flush; std::this_thread::sleep_for(200ms); } std::cout << std::endl; } int main() { std::jthread thread(f, 5); // affiche 5 6 7 8... pendant environ 3 secondes std::this_thread::sleep_for(3s); // Le destructeur de jthread appelle request_stop() et join(). }
Sortie possible :
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19