From 38f934e4c6db615d1a180f30e7c0d78fad97b0f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Thu, 29 Aug 2013 13:22:00 +0200 Subject: [PATCH] Added mutex to YACReaderClientConnectionWorker, syncronized access to DB --- YACReaderLibrary/yacreader_local_server.cpp | 4 ++++ YACReaderLibrary/yacreader_local_server.h | 2 ++ 2 files changed, 6 insertions(+) diff --git a/YACReaderLibrary/yacreader_local_server.cpp b/YACReaderLibrary/yacreader_local_server.cpp index 17ba3aa5..9ce31f54 100644 --- a/YACReaderLibrary/yacreader_local_server.cpp +++ b/YACReaderLibrary/yacreader_local_server.cpp @@ -11,6 +11,8 @@ using namespace YACReader; +QMutex YACReaderClientConnectionWorker::dbMutex; + YACReaderLocalServer::YACReaderLocalServer(QObject *parent) : QThread(parent) { @@ -145,12 +147,14 @@ void YACReaderClientConnectionWorker::run() void YACReaderClientConnectionWorker::getComicInfo(quint64 libraryId, ComicDB & comic, QList & siblings) { + QMutexLocker locker(&dbMutex); comic = DBHelper::getComicInfo(DBHelper::getLibrariesNames().at(libraryId), comic.id); siblings = DBHelper::getSiblings(DBHelper::getLibrariesNames().at(libraryId), comic.parentId); } void YACReaderClientConnectionWorker::updateComic(quint64 libraryId, ComicDB & comic) { + QMutexLocker locker(&dbMutex); DBHelper::update(DBHelper::getLibrariesNames().at(libraryId), comic.info); emit comicUpdated(libraryId, comic); } diff --git a/YACReaderLibrary/yacreader_local_server.h b/YACReaderLibrary/yacreader_local_server.h index 45e4be09..34b59ccf 100644 --- a/YACReaderLibrary/yacreader_local_server.h +++ b/YACReaderLibrary/yacreader_local_server.h @@ -3,6 +3,7 @@ #include #include +#include class QLocalServer; class QLocalSocket; @@ -35,6 +36,7 @@ public: signals: void comicUpdated(quint64 libraryId, const ComicDB & comic); private: + static QMutex dbMutex; void run(); void getComicInfo(quint64 libraryId, ComicDB & comic, QList & sibling);