diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-01-13 15:16:45 +0100 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-01-13 15:16:45 +0100 |
commit | 8485cca81df18f194af53ad6cbda43aaa7eaccf9 (patch) | |
tree | b2319fc2f3b67de74686d050d75d9c146d9e2bac /src/browser.cpp | |
parent | Writing BookmarksModel to xbel (diff) | |
download | smolbote-8485cca81df18f194af53ad6cbda43aaa7eaccf9.tar.xz |
Multithreaded saving during shutdown
Diffstat (limited to 'src/browser.cpp')
-rw-r--r-- | src/browser.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
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 <QDir> +#include <QtConcurrent> #include <bookmarks/bookmarkswidget.h> #include <downloads/downloadswidget.h> 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<Configuration> &config) |