Espacios de nombres
Variantes
Acciones

std::stop_token

De cppreference.com
< cpp‎ | thread
 
 
Biblioteca de apoyo de concurrencia
Hilos
(C++11)
(C++20)
Espacio de nombres this_thread
(C++11)
(C++11)
(C++11)
Cancelación cooperativa
stop_token
(C++20)
Exclusión mutua
Gestión genérica de bloqueo
(C++11)
(C++11)
(C++11)
(C++11)
Variables de condición
(C++11)
Semáforos
Pestillos y barreras
(C++20)
(C++20)
Futuros
(C++11)
(C++11)
(C++11)
Recuperación segura
Punteros de riesgo
Tipos atómicos
(C++11)
(C++20)
Inicialización de tipos atómicos
(C++11)(en desuso en C++20)
(C++11)(en desuso en C++20)
Orden de memoria
Funciones independientes para operaciones atómicas
Funciones independientes para indicadores atómicos
 
 
Definido en el archivo de encabezado <stop_token>
class stop_token;
(desde C++20)

La clase stop_token proporciona los medios para verificar si se ha realizado o se puede realizar una solicitud de detención para su objeto asociado std::stop_source. Es esencialmente una "vista" segura para hilos del estado de detención asociado.

Un objeto de tipo stop_token también se puede pasar al constructor de std::stop_callback, de modo que la devolución de llamada se invocará si al objeto asociado std::stop_source de la instancia de stop_token se le solicita que se detenga. Además, se puede pasar un objeto de tipo stop_token a las funciones de espera interrumpibles de std::condition_variable_any, para interrumpir la espera de la variable de condición si se ha solicitado que se detenga.

Contenido

[editar]Funciones miembro

Construye un nuevo objeto stop_token
(función miembro pública)[editar]
Destruye el objeto stop_token
(función miembro pública)[editar]
Asigna el objeto stop_token
(función miembro pública)[editar]
Modificadores
Intercambia dos objetos stop_token
(función miembro pública)[editar]
Observadores
Comprueba si se ha solicitado al estado de detención asociado que se detenga
(función miembro pública)[editar]
Comprueba si se puede solicitar al estado de detención asociado que se detenga
(función miembro pública)[editar]

[editar]Funciones no miembro

Compara dos objetos std::stop_token
(función)[editar]
Especializa el algoritmo std::swap
(función)[editar]

[editar]Notas

Un objeto stop_token generalmente no se construye de forma independiente, sino que se recupera de un std::jthread o std::stop_source. Esto hace que comparta el mismo estado de detención asociado que std::jthread o std::stop_source.

[editar]Ejemplo

#include <thread>#include <iostream>   usingnamespace 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);// imprime 5 6 7 8... aproximadamente por 3 segundosstd::this_thread::sleep_for(3s);// El destructor de jthread llama a request_stop() y a join().}

Posible salida:

5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
close