From 26746ac9ee568e0a734bbeb9ab454ac2682f8d48 Mon Sep 17 00:00:00 2001 From: Eladash <18193363+elad335@users.noreply.github.com> Date: Thu, 11 Apr 2024 16:32:28 +0300 Subject: [PATCH] Progress Dialog: Force update every 20 seconds --- rpcs3/Emu/system_progress.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/rpcs3/Emu/system_progress.cpp b/rpcs3/Emu/system_progress.cpp index 2847e9ae3b..69051acd93 100644 --- a/rpcs3/Emu/system_progress.cpp +++ b/rpcs3/Emu/system_progress.cpp @@ -167,14 +167,18 @@ void progress_dialog_server::operator()() const char* text1 = nullptr; const u64 start_time = get_system_time(); + u64 wait_no_update_count = 0; // Update progress while (!g_system_progress_stopping && thread_ctrl::state() != thread_state::aborting) { const auto& [text_new, ftotal_new, fdone_new, ftotal_bits_new, fknown_bits_new, ptotal_new, pdone_new] = get_state(); - if (ftotal != ftotal_new || fdone != fdone_new || fknown_bits != fknown_bits_new || ftotal_bits != ftotal_bits_new || ptotal != ptotal_new || pdone != pdone_new || text_new != text1) + // Force-update every 20 seconds to update remaining time + if (wait_no_update_count == 100u * 20 || ftotal != ftotal_new || fdone != fdone_new || fknown_bits != fknown_bits_new + || ftotal_bits != ftotal_bits_new || ptotal != ptotal_new || pdone != pdone_new || text_new != text1) { + wait_no_update_count = 0; ftotal = ftotal_new; fdone = fdone_new; ftotal_bits = ftotal_bits_new; @@ -307,7 +311,8 @@ void progress_dialog_server::operator()() break; } - thread_ctrl::wait_for(10000); + thread_ctrl::wait_for(10'000); + wait_no_update_count++; } if (g_system_progress_stopping || thread_ctrl::state() == thread_state::aborting)