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 100 private:
101 101 BR_PROPERTY(Mode, mode, Encoded)
102 102  
103   - mutable QNetworkAccessManager nam;
104   - mutable QMutex namLock;
  103 + mutable QThreadStorage<QNetworkAccessManager*> nam;
105 104  
106 105 void project(const Template &src, Template &dst) const
107 106 {
... ... @@ -118,9 +117,9 @@ private:
118 117 device = new QFile(url);
119 118 device->open(QIODevice::ReadOnly);
120 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 124 reply->waitForReadyRead(-1);
126 125 while (!reply->isFinished())
... ...