Forwarded from Библиотека C/C++ разработчика | cpp, boost, qt
Коллега написал таймаут для сетевого запроса и клянётся, что «иногда он срабатывает мгновенно, а иногда висит вечно». Особенно после перевода часов. Найдёшь причину?
#include <chrono>
using namespace std::chrono;
bool wait_for_response(Connection& conn, int timeout_ms) {
auto deadline = system_clock::now() + milliseconds(timeout_ms);
while (system_clock::now() < deadline) {
if (conn.has_data()) return true;
std::this_thread::sleep_for(milliseconds(10));
}
return false;
}
Задача: объясни, почему таймаут ведёт себя непредсказуемо, и перепиши функцию так, чтобы она работала корректно всегда.
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM