Namespaces
Variants

std::promise<R>:: set_exception_at_thread_exit

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
void set_exception_at_thread_exit ( std:: exception_ptr p ) ;
(desde C++11)

Almacena el puntero de excepción p en el estado compartido sin preparar el estado inmediatamente. El estado se prepara cuando el hilo actual termina, después de que todas las variables con duración de almacenamiento local al hilo hayan sido destruidas.

La operación se comporta como si set_value , set_exception , set_value_at_thread_exit , y set_exception_at_thread_exit adquirieran un único mutex asociado con el objeto promise mientras actualizan el objeto promise.

Se lanza una excepción si no hay un estado compartido o si el estado compartido ya almacena un valor o excepción.

Las llamadas a esta función no introducen carreras de datos con las llamadas a get_future (por lo tanto no necesitan sincronizarse entre sí).

Contenidos

Parámetros

p - puntero de excepción a almacenar. El comportamiento es indefinido si p es nullptr

Valor de retorno

(ninguno)

Excepciones

std::future_error en las siguientes condiciones:

  • * this no tiene estado compartido. El código de error se establece en no_state .

Ejemplo

Véase también

establece el resultado para indicar una excepción
(función miembro pública)