Commit e3a93e08d6ff245291b72d778dbd35756cce4790
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()) |