> On Aug. 20, 2011, 9:31 a.m., David Faure wrote: > > Starting and stopping threads all the time is much more wasteful than > > Albert's approach (which Thiago and I designed) where a single thread is > > being reused for all queries. And waiting 250ms doesn't seem efficient > > either. > > > > I don't understand why we are still diving into this solution when Albert's > > patch seems to do the job much more nicely.
Then please sign off on Albert's patch and I will close this one. - Dawit ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://git.reviewboard.kde.org/r/102238/#review5846 ----------------------------------------------------------- On Aug. 18, 2011, 9:45 p.m., Dawit Alemayehu wrote: > > ----------------------------------------------------------- > 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. > > > 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 > ----- > > 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 > >
