TGViewer
Библиотека задач по C++ | тесты, код, задания Библиотека задач по C++ | тесты, код, задания @cpp_problems_lib · 5.45K subscribers
Post #2075 457

Forwarded from Библиотека C/C++ разработчика | cpp, boost, qt

☠️ Задача на выходные: std::thread, который убивает программу при выходе из функции

Маленькая безобидная функция создаёт std::thread, что-то делает и в конце — terminate() и аварийное завершение всего приложения. Без единого явного throw в коде.

void DoWork(bool earlyExitCondition) {
std::thread worker([]() {
Sleep(2000);
std::cout << "Done\n";
});

if (earlyExitCondition) {
return; // worker все ещё joinable!
}

worker.join();
}


Задача: объясни, почему деструктор std::thread вызывает std::terminate, если поток всё ещё joinable, и предложи паттерн, который защищает от этого на всех путях выхода из функции, включая исключения.


📍Навигация: ВакансииЗадачиСобесы

Библиотека C/C++ разработчика

#междусобойчик
More from @cpp_problems_lib
  1. Sep 16, 2026🧨 Задача: битовое поле, которое лжёт Сделали компактную структуру флагов. Записали 1, сра…
  2. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  3. Aug 5, 2026Post #2131
  4. Aug 5, 2026photo post
  5. Aug 5, 2026👅 Самое сложное — выбрать не курс, а направление Сегодня хочется разобраться в AI-агентах…
  6. Aug 5, 2026Покупать новый курс каждый раз, когда меняется рабочая задача, — довольно странная механик…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →