From be7e47ec1888072b374fb01d3c25c1ed2225f1e1 Mon Sep 17 00:00:00 2001 From: Charlie Fenton Date: Mon, 9 Mar 2015 08:49:44 -0700 Subject: [PATCH] SCR: Fix a bug which prevented default screensaver (clientscr) from running when BOINC client was suspended. --- clientscr/screensaver.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/clientscr/screensaver.cpp b/clientscr/screensaver.cpp index 915e64df6a..130d00b139 100644 --- a/clientscr/screensaver.cpp +++ b/clientscr/screensaver.cpp @@ -562,6 +562,8 @@ DataMgmtProcType CScreensaver::DataManagementProc() { } // Core client suspended? + // We ignore SUSPEND_REASON_CPU_USAGE in SS coordinator, so it won't kill graphics apps for + // short-term CPU usage spikes (such as anti-virus.) Added 9 April 2010 if (suspend_reason && !(suspend_reason & (SUSPEND_REASON_CPU_THROTTLE | SUSPEND_REASON_CPU_USAGE))) { if (!m_bDefault_gfx_running) { SetError(TRUE, m_hrError); // No GFX App is running: show moving BOINC logo @@ -680,8 +682,12 @@ DataMgmtProcType CScreensaver::DataManagementProc() { // and launch its graphics app // if ((m_bDefault_gfx_running || (m_hGraphicsApplication == 0)) && (graphics_app_result_ptr == NULL)) { - graphics_app_result_ptr = get_random_graphics_app(results, previous_result_ptr); - previous_result_ptr = NULL; + if (suspend_reason && !(suspend_reason & (SUSPEND_REASON_CPU_THROTTLE | SUSPEND_REASON_CPU_USAGE))) { + graphics_app_result_ptr = NULL; + } else { + graphics_app_result_ptr = get_random_graphics_app(results, previous_result_ptr); + previous_result_ptr = NULL; + } if (graphics_app_result_ptr) { if (m_bDefault_gfx_running) {