Commit e3a93e08d6ff245291b72d778dbd35756cce4790

Authored by Josh Klontz
1 parent d5cb21a1

thread local network access managers, for #207

Showing 1 changed file with 4 additions and 5 deletions
openbr/plugins/misc.cpp
@@ -100,8 +100,7 @@ public: @@ -100,8 +100,7 @@ public:
100 private: 100 private:
101 BR_PROPERTY(Mode, mode, Encoded) 101 BR_PROPERTY(Mode, mode, Encoded)
102 102
103 - mutable QNetworkAccessManager nam;  
104 - mutable QMutex namLock; 103 + mutable QThreadStorage<QNetworkAccessManager*> nam;
105 104
106 void project(const Template &src, Template &dst) const 105 void project(const Template &src, Template &dst) const
107 { 106 {
@@ -118,9 +117,9 @@ private: @@ -118,9 +117,9 @@ private:
118 device = new QFile(url); 117 device = new QFile(url);
119 device->open(QIODevice::ReadOnly); 118 device->open(QIODevice::ReadOnly);
120 } else { 119 } else {
121 - namLock.lock();  
122 - QNetworkReply *reply = nam.get(QNetworkRequest(url));  
123 - namLock.unlock(); 120 + if (!nam.hasLocalData())
  121 + nam.setLocalData(new QNetworkAccessManager());
  122 + QNetworkReply *reply = nam.localData()->get(QNetworkRequest(url));
124 123
125 reply->waitForReadyRead(-1); 124 reply->waitForReadyRead(-1);
126 while (!reply->isFinished()) 125 while (!reply->isFinished())