Вопрос про std::future, обрушенный исключением поток и деструктор std::future

Рассмотрим следующую ситуацию.

  • Запускается фоновый поток, результат работы которого ожидается в std::future
  • В потоке возникает исключение, которое не перехватывается и вылетает за пределы потока;
  • Вызывается деструктор std::future (то есть, захваченное исключение не забирается).

Будет ли поток остановлен немедленно? Безопасно ли уничтожать std::future, в котором хранится исключение?


Ответы (1 шт):

Автор решения: joker

Поток не будет остановлен, он ведь результат не запросил ещё. Уничтожать можно - ничего не произойдет (исключение бросается только при вызове get).

→ Ссылка