aboutsummaryrefslogtreecommitdiff
path: root/src/browser.cpp
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-01-13 15:16:45 +0100
committerAqua-sama <aqua@iserlohn-fortress.net>2018-01-13 15:16:45 +0100
commit8485cca81df18f194af53ad6cbda43aaa7eaccf9 (patch)
treeb2319fc2f3b67de74686d050d75d9c146d9e2bac /src/browser.cpp
parentWriting BookmarksModel to xbel (diff)
downloadsmolbote-8485cca81df18f194af53ad6cbda43aaa7eaccf9.tar.xz
Multithreaded saving during shutdown
Diffstat (limited to 'src/browser.cpp')
-rw-r--r--src/browser.cpp13
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)