Namespaces
Variants

std::stop_callback<Callback>:: ~stop_callback

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
~stop_callback ( ) ;
(desde C++20)

Destruye el objeto stop_callback .

Si * this tiene un stop_token con estado de parada asociado, desregistra la función de retorno del mismo.

Si la función de callback se está invocando concurrentemente en otro hilo, el destructor no se completa hasta que la invocación de la función de callback esté completa. Si la función de callback se está invocando en el mismo hilo en el que se está invocando el destructor, entonces el destructor retorna sin esperar a que la invocación del callback se complete (ver Notas).

Notas

El stop_callback destructor está diseñado para prevenir condiciones de carrera y bloqueos mutuos. Si otro hilo está invocando actualmente la devolución de llamada, entonces el destructor no puede retornar hasta que se complete, o de lo contrario el objeto función podría potencialmente ser destruido mientras se está ejecutando. La función de devolución de llamada no necesita ser ni copiable ni movible - reside en el objeto stop_callback mismo incluso después del registro.

Por otro lado, si el hilo actual que invoca el destructor es el mismo hilo que está invocando el callback, entonces el destructor no puede esperar o de lo contrario ocurriría un deadlock. Es posible y válido que el mismo hilo esté destruyendo el stop_callback mientras está invocando su función de callback, porque la función de callback podría destruir el stop_callback , directa o indirectamente.