diff --git a/app/task/render/render.cpp b/app/task/render/render.cpp index f3cd07d5c..bb7c99a17 100644 --- a/app/task/render/render.cpp +++ b/app/task/render/render.cpp @@ -266,9 +266,14 @@ bool RenderTask::Render(ColorManager* manager, if (IsCancelled() || !result) { // Cancel every watcher we created foreach (RenderTicketWatcher* watcher, running_watchers_) { + watcher->Cancel(); disconnect(watcher, &RenderTicketWatcher::Finished, this, &RenderTask::TicketDone); RenderManager::instance()->RemoveTicket(watcher->GetTicket()); } + + foreach (RenderTicketWatcher* watcher, running_watchers_) { + watcher->WaitForFinished(); + } } watcher_thread.quit();