----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://git.reviewboard.kde.org/r/102238/ -----------------------------------------------------------
(Updated Aug. 18, 2011, 9:45 p.m.) Review request for kdelibs, David Faure and Thiago Macieira. Changes ------- Removed the signal/slot connection in NameLookThread's ctor. It is no longer needed since the thread will be reused and only gotten rid of when its parent class is destroyed. Summary ------- The attached patch is an alternate approach to address the issue of crashes that arise from terminating an active thread than the one proposed at https://git.reviewboard.kde.org/r/102179/. With this patch the function "QHostInfo::lookupHost(QString, int)" avoids the use of QThread::terminate with the following fairly simple changes: - Connect its finished signal to its parent deleteLater slot in the ctor so that the thread is automatically deleted later. - Store the looked up DNS info in the global cache to avoid unnecessary queries for the same request. - Check for cached DNS information and avoid doing reverse look ups before resorting to performing DNS queries in a separate thread. Diffs (updated) ----- kio/kio/hostinfo.cpp 344b1d8 Diff: http://git.reviewboard.kde.org/r/102238/diff Testing ------- Tested with the following code based on Albert's post. #include "hostinfo_p.h" #include <QtGui/QApplication> #include <QtCore/QElapsedTimer> #include <QtNetwork/QHostInfo> int main(int a, char **b) { QApplication app(a, b); QElapsedTimer t; t.start(); qDebug() << KIO::HostInfo::lookupHost("www.kde.org", 0).addresses(); qDebug() << "Time:" << t.elapsed() << "ms"; } Thanks, Dawit
