Método promise::set_value
Armazena de maneira atômica um valor como resultado desse objeto promise e define o estado assíncrono associado para pronto.
void promise::set_value(const Ty& Val);
void promise::set_value(Ty&& Val);
void promise<Ty&>::set_value(Ty& Val);
void promise<void>::set_value();
Parâmetros
- Val
O valor a ser armazenado como o resultado.
Comentários
Se o objeto de promise não tem estado assíncrono associado, esse método gerará future_error que tem um código de erro de no_state.
Se set_exception, set_exception_at_thread_exit, set_value, ou set_value_at_thread_exit já tiver sido chamado para um objeto de promise que tem o mesmo estado assíncrono associado, esse método gerará um future_error que tem um código de erro de promise_already_satisfied.
Como resultado desse método, todos os threads que estão bloqueados no estado assíncrono associado são desbloqueados.
O primeiro método também dá origem a uma exceção que é gerada quando Val é copiado para o estado assíncrono associado. Nesta situação, o estado assíncrono associado não está definido para "pronto".
O segundo método também lança qualquer exceção que é lançada quando Val é movido para o estado assíncrono associado. Nesta situação, o estado assíncrono associado não está definido para "pronto".
Para a especialização parcial promise<Ty&>, o valor armazenado é efetivamente uma referência a Val.
Para a especialização promise<void>, nenhum valor armazenado existe.
Requisitos
Cabeçalho: futuro
std de Namespace: