Compartilhar via


Método promise::set_value_at_thread_exit

Armazena de maneira atômica um valor como resultado desse objeto promise.

void promise::set_value_at_thread_exit(const Ty& Val);
void promise::set_value_at_thread_exit(Ty&& Val);
void promise<Ty&>::set_value_at_thread_exit(Ty& Val);
void promise<void>::set_value_at_thread_exit();

Parâmetros

  • Val
    O valor a ser armazenado como o resultado.

Comentários

Se o objeto de promessa não tiver nenhum estado assíncrono associado, esse método gerará um 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.

Em contraste com set_value, o estado assíncrono associado não é definido para "pronto" até que todos os objetos locais do segmento no segmento atual tenham sido destruídos. Normalmente, os threads que estão bloqueados no estado assíncrono associado não são desbloqueados até que o thread atual seja encerrado.

O primeiro método também dá origem a uma exceção que é gerada quando Val é copiado para o estado assíncrono associado.

O segundo método também lança qualquer exceção que é lançada quando Val é movido para o estado assíncrono associado.

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:

Consulte também

Referência

Classe promise

<future>