From 8485cca81df18f194af53ad6cbda43aaa7eaccf9 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Sat, 13 Jan 2018 15:16:45 +0100 Subject: Multithreaded saving during shutdown --- src/browser.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'src/browser.cpp') diff --git a/src/browser.cpp b/src/browser.cpp index bd1f841..25fcf59 100644 --- a/src/browser.cpp +++ b/src/browser.cpp @@ -10,14 +10,15 @@ #include "mainwindow.h" #include "webengine/urlinterceptor.h" #include +#include #include #include Browser::Browser(int &argc, char *argv[]) : SingleApplication(argc, argv) { - setApplicationName("smolbote"); - setWindowIcon(QIcon(":/icon.svg")); + QApplication::setApplicationName("smolbote"); + QApplication::setWindowIcon(QIcon(":/icon.svg")); connect(this, &Browser::messageAvailable, this, &Browser::createSession); } @@ -25,11 +26,15 @@ Browser::Browser(int &argc, char *argv[]) Browser::~Browser() { if(m_config) { - m_config->writeIfNeeded(); + QtConcurrent::run(QThreadPool::globalInstance(), m_config.get(), &Configuration::writeIfNeeded); + //m_config->writeIfNeeded(); } if(m_bookmarksManager) { - m_bookmarksManager->save(); + QtConcurrent::run(QThreadPool::globalInstance(), m_bookmarksManager.get(), &BookmarksWidget::save); + //m_bookmarksManager->save(); } + + qDebug("Waiting for threads to wind down: %s", QThreadPool::globalInstance()->waitForDone() ? "done" : "failed"); } void Browser::setConfiguration(std::shared_ptr &config) -- cgit v1.2.1