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 | 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()) | ... | ... |