From ce86c3373e0271ffad4ce645663e63a468158c1a Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 4 Jul 2019 21:09:09 +0200 Subject: QHostInfo: un-QObject-ify QHostInfoLookupManager QObjects are not even reentrant, but this class must be thread-safe, so it's always ... icky ... to have to analyze a "thread-safe QObject", because for all intents and purposes, that's an oxymoron. The QObject-ness isn't even used, except for defining a private slot, connected to QCoreApplication::destroyed(). That slot just calls waitForDone() on QThreadPool, which is a QObject itself, so use it as the context object for the signal-slot connection, using a lambda as slot. So, strip the class of it's base class, convert the private slot to a lambda and connect to that. Finally, remove the moveToThread() call, because this new class can be destroyed from any thread, not just the main one. Change-Id: I0e33983aa7afd0ad621ece4afd10d9e4adad38c1 Reviewed-by: Volker Hilsheimer --- src/network/kernel/qhostinfo_p.h | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) (limited to 'src/network/kernel/qhostinfo_p.h') diff --git a/src/network/kernel/qhostinfo_p.h b/src/network/kernel/qhostinfo_p.h index 747069a2c6..ee052b86d3 100644 --- a/src/network/kernel/qhostinfo_p.h +++ b/src/network/kernel/qhostinfo_p.h @@ -208,9 +208,8 @@ public: }; -class QHostInfoLookupManager : public QObject +class QHostInfoLookupManager { - Q_OBJECT public: QHostInfoLookupManager(); ~QHostInfoLookupManager(); @@ -246,11 +245,6 @@ protected: private: void rescheduleWithMutexHeld(); - -private slots: -#if QT_CONFIG(thread) - void waitForThreadPoolDone() { threadPool.waitForDone(); } -#endif }; QT_END_NAMESPACE -- cgit v1.2.3