Review Request: Avoid terminating a QThread in kio/kio/hostinfo.cpp
Dawit Alemayehu
adawit at kde.org
Sat Aug 20 15:49:03 BST 2011
> 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20110820/877ed54a/attachment.htm>
More information about the kde-core-devel
mailing list