Some protection for multithreading
authorTorste Aikio <zokier@zokier.laptop>
Wed, 7 Jul 2010 07:28:38 +0000 (10:28 +0300)
committerTorste Aikio <zokier@zokier.laptop>
Wed, 7 Jul 2010 07:28:38 +0000 (10:28 +0300)
src/remotedbmgr.cpp

index 476a804..14f9eaa 100644 (file)
@@ -29,7 +29,7 @@ RemoteDBMgr::~RemoteDBMgr()
 
 void RemoteDBMgr::getDBAsync()
 {
-    if (db.isEmpty()) {
+    if (db.isEmpty() && !processing) {
         QSettings settings(this);
         netAM.get(QNetworkRequest(QUrl(settings.value("baseUrl",
             "http://mercury.wipsl.com/irwi/").toString() + "db/db.xml")));
@@ -41,7 +41,7 @@ void RemoteDBMgr::getDBAsync()
 
 void RemoteDBMgr::dbDownloadFinished(QNetworkReply *reply)
 {
-    if (reply->error() == QNetworkReply::NoError) {
+    if (processing = (reply->error() == QNetworkReply::NoError)) {
         QByteArray ba = reply->readAll();
         QBuffer buf(&ba);
         buf.open(QIODevice::ReadOnly);
@@ -56,6 +56,7 @@ void RemoteDBMgr::dbDownloadFinished(QNetworkReply *reply)
     } else {
         qDebug() << reply->error();
     }
+    processing = false;
 }
 
 void RemoteDBMgr::parse(QDomDocument &doc)