std::thread уничтожен без join и detach
void start_batch() {
std::thread t(process_batch);
// ни join(), ни detach() не вызваны
}
Что произойдёт при выходе из start_batch?
- Поток тихо продолжит работу в фоне, как после `detach`
- Деструктор дождётся завершения потока — это неявный `join`
- Программа аварийно завершится: деструктор присоединяемого потока вызывает `std::terminate`
- Поток будет принудительно остановлен, его стек корректно размотается, а захваченные им ресурсы освободятся
