From 08296ec74ddf61dfa8ab99c1f03f4fd929255a34 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Wed, 22 Jan 2025 10:44:23 +0100 Subject: [PATCH] fix recv_with_timeout --- examples/server/server.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/examples/server/server.cpp b/examples/server/server.cpp index fb41775ca..37e1c94c5 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -1642,10 +1642,6 @@ struct server_response { server_task_result_ptr recv_with_timeout(const std::unordered_set & id_tasks, int timeout) { while (true) { std::unique_lock lock(mutex_results); - std::cv_status cr_res = condition_results.wait_for(lock, std::chrono::seconds(timeout)); - if (cr_res == std::cv_status::timeout) { - return nullptr; - } for (int i = 0; i < (int) queue_results.size(); i++) { if (id_tasks.find(queue_results[i]->id) != id_tasks.end()) { @@ -1654,6 +1650,11 @@ struct server_response { return res; } } + + std::cv_status cr_res = condition_results.wait_for(lock, std::chrono::seconds(timeout)); + if (cr_res == std::cv_status::timeout) { + return nullptr; + } } // should never reach here