Вступить в клуб →
средняявопросСборка, тесты и профилирование

Мигающий тест на многопоточный код

Тест на пул потоков проходит примерно в 9 запусках из 10. Внутри он стартует воркеры, делает std::this_thread::sleep_for(200ms) и проверяет, что все задачи выполнены.

Что правильно предпринять?

  • Увеличить паузу до 2 секунд: десятикратный запас перекроет разброс времени на раннере
  • Отключить тест в CI и запускать его вручную перед релизом
  • Убрать паузу и дождаться завершения детерминированно (через `future` или condition_variable), а код прогнать под ThreadSanitizer
  • Настроить в CI автоматический перезапуск упавших тестов до трёх раз

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела