From 5588686fd7f1d403b649a29672b54f24ffd8ab11 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 9 Feb 2017 23:22:09 +0000 Subject: [PATCH] Mitigate remote probe thread delaying full shutdown of program --- qrenderdoc/Windows/MainWindow.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/qrenderdoc/Windows/MainWindow.cpp b/qrenderdoc/Windows/MainWindow.cpp index d7779863f..a8a48721c 100644 --- a/qrenderdoc/Windows/MainWindow.cpp +++ b/qrenderdoc/Windows/MainWindow.cpp @@ -151,8 +151,14 @@ MainWindow::MainWindow(CaptureContext &ctx) : QMainWindow(NULL), ui(new Ui::Main m_RemoteProbe = new LambdaThread([this]() { while(m_RemoteProbeSemaphore.available()) { + // do several small sleeps so we can respond quicker when we need to shut down + for(int i = 0; i < 50; i++) + { + QThread::msleep(150); + if(!m_RemoteProbeSemaphore.available()) + return; + } remoteProbe(); - QThread::msleep(7500); } }); m_RemoteProbe->start(); @@ -864,6 +870,10 @@ void MainWindow::remoteProbe() continue; host->CheckStatus(); + + // bail as soon as we notice that we're done + if(!m_RemoteProbeSemaphore.available()) + return; } } }