From 4460634758dd80e8a8ea76fe6a449b22f48ff721 Mon Sep 17 00:00:00 2001 From: Armin Felder <armin.felder@osalliance.com> Date: Mon, 3 Dec 2018 03:39:42 +0100 Subject: [PATCH] use time for db transactions --- persistancelayer.cpp | 18 ++++++++++++------ persistancelayer.h | 3 +-- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/persistancelayer.cpp b/persistancelayer.cpp index ca6a802..b1b5ec2 100755 --- a/persistancelayer.cpp +++ b/persistancelayer.cpp @@ -374,17 +374,17 @@ void PersistanceLayer::commit( ) { // mMutex.lock(); + /* if ( mCommitCounter ) { + mCommitCounter--; + } + */ if ( mCommitCounter ) { - mCommitCounter--; - } - - if ( mCommitCounter == 0 ) { if ( !mDb.commit() ) { qWarning() << mDb.lastError(); } - counter++; - qDebug() << "db commits" << counter; + mCommitCounter = 0; + } // mMutex.unlock(); @@ -1451,6 +1451,12 @@ void PersistanceLayer::init() throw std::runtime_error( mDb.lastError().text().toStdString() + "file used:" + filePath.toStdString() ); } + commitTimer.setInterval( 3000 ); + commitTimer.start(); + connect( &commitTimer, &QTimer::timeout, [&]() { + commit(); + commitTimer.start(); + } ); mDbReady = true; initShema(); emit( ready() ); diff --git a/persistancelayer.h b/persistancelayer.h index b2029f3..f1b9186 100755 --- a/persistancelayer.h +++ b/persistancelayer.h @@ -98,8 +98,7 @@ class PersistanceLayer : public QObject PersistanceLayer() {} QSqlDatabase mDb{ QSqlDatabase::addDatabase( "QSQLITE" )}; QMimeDatabase mMimeDb; - QMutex mMutex; - QAtomicInt counter = 0; + QTimer commitTimer; void initShema(); void upgradeSchema(); -- GitLab