From dc40f9ea0a2bb2a5f4d78a3f100baf8b15024a3e Mon Sep 17 00:00:00 2001 From: uye <2396806385@qq.com> Date: Fri, 10 Feb 2023 23:28:15 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E4=BC=98=E5=8C=96sleep=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=E9=80=80=E5=87=BA=E7=9A=84=E9=97=B4=E9=9A=94=E6=97=B6?= =?UTF-8?q?=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MaaCore/InstHelper.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/MaaCore/InstHelper.cpp b/src/MaaCore/InstHelper.cpp index 317a90a5ee..66b19e887b 100644 --- a/src/MaaCore/InstHelper.cpp +++ b/src/MaaCore/InstHelper.cpp @@ -29,16 +29,15 @@ bool asst::InstHelper::sleep(unsigned millisecond) const std::this_thread::yield(); return true; } - auto start = std::chrono::steady_clock::now(); Log.trace("ready to sleep", millisecond); auto millisecond_ms = std::chrono::milliseconds(millisecond); - auto interval = millisecond_ms / 5; + auto interval = std::chrono::milliseconds(std::min(millisecond, 5000U)); - while (!need_exit()) { + for (auto sleep_time = interval; sleep_time <= millisecond_ms && !need_exit(); sleep_time += interval) { std::this_thread::sleep_for(interval); - if (std::chrono::steady_clock::now() - start > millisecond_ms) { - break; - } + } + if (!need_exit()) { + std::this_thread::sleep_for(millisecond_ms % interval); } Log.trace("end of sleep", millisecond);