summaryrefslogtreecommitdiffstats
path: root/src/network/kernel
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@nokia.com>2010-10-05 13:46:47 (GMT)
committerPaul Olav Tvete <paul.tvete@nokia.com>2010-10-05 13:46:47 (GMT)
commitad04d96fdac0fea252096d5144abf684516cbb10 (patch)
tree50e9defb39955db39116677f2eef3d72e8053a26 /src/network/kernel
parent1200bf9f82860d2f391a4b68ce25c606eb9a0831 (diff)
parentbbaf34b1f5ac4e6d425eab183112b504b9ed4e83 (diff)
downloadQt-ad04d96fdac0fea252096d5144abf684516cbb10.zip
Qt-ad04d96fdac0fea252096d5144abf684516cbb10.tar.gz
Qt-ad04d96fdac0fea252096d5144abf684516cbb10.tar.bz2
Merge remote branch 'qt/master' into lighthouse-master
Conflicts: src/gui/painting/qpdf.cpp
Diffstat (limited to 'src/network/kernel')
-rw-r--r--src/network/kernel/qhostinfo.cpp24
1 files changed, 15 insertions, 9 deletions
diff --git a/src/network/kernel/qhostinfo.cpp b/src/network/kernel/qhostinfo.cpp
index 7908182..c8fc45e 100644
--- a/src/network/kernel/qhostinfo.cpp
+++ b/src/network/kernel/qhostinfo.cpp
@@ -224,7 +224,10 @@ QHostInfo QHostInfo::fromName(const QString &name)
qDebug("QHostInfo::fromName(\"%s\")",name.toLatin1().constData());
#endif
- return QHostInfoAgent::fromName(name);
+ QHostInfo hostInfo = QHostInfoAgent::fromName(name);
+ QHostInfoLookupManager *manager = theHostInfoLookupManager();
+ manager->cache.put(name, hostInfo);
+ return hostInfo;
}
/*!
@@ -448,14 +451,17 @@ void QHostInfoRunnable::run()
resultEmitter.emitResultsReady(hostInfo);
// now also iterate through the postponed ones
- QMutableListIterator<QHostInfoRunnable*> iterator(manager->postponedLookups);
- while (iterator.hasNext()) {
- QHostInfoRunnable* postponed = iterator.next();
- if (toBeLookedUp == postponed->toBeLookedUp) {
- // we can now emit
- iterator.remove();
- hostInfo.setLookupId(postponed->id);
- postponed->resultEmitter.emitResultsReady(hostInfo);
+ {
+ QMutexLocker locker(&manager->mutex);
+ QMutableListIterator<QHostInfoRunnable*> iterator(manager->postponedLookups);
+ while (iterator.hasNext()) {
+ QHostInfoRunnable* postponed = iterator.next();
+ if (toBeLookedUp == postponed->toBeLookedUp) {
+ // we can now emit
+ iterator.remove();
+ hostInfo.setLookupId(postponed->id);
+ postponed->resultEmitter.emitResultsReady(hostInfo);
+ }
}
}