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);