std::stop_callback<Callback>:: ~stop_callback
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
|
stop_callback::~stop_callback
|
||||
| Deduction guides |
|
~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.