summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qabstracteventdispatcher.h
diff options
context:
space:
mode:
authorAlex Trotsenko <alex1973tr@gmail.com>2020-09-18 19:10:35 +0300
committerAlex Trotsenko <alex1973tr@gmail.com>2020-11-10 17:56:51 +0200
commitaefd414ce2418bee5d6dacf9092f7a3949f02af8 (patch)
treee84181a5d423b98134ac878f6ac0787a7f477f53 /src/corelib/kernel/qabstracteventdispatcher.h
parent0bfb39da858606a837f38f3d406f041a3f3c179c (diff)
QWinEventNotifier: unlink from event dispatcher
Instead of multiplexing all notifications into a single Qt event for the event dispatcher, we can send 'WinEventAct' event directly for each notifier which activated. This trick improves the performance (esp. on a large number of events) and allows us to remove notifiers handling from the event dispatcher completely. As an alternative to sending Qt events, use of Windows' APC queue in conjunction with waking up the Qt event loop from within the Windows thread pool has been considered. However, that would lead to signal emission asynchronous to the Qt event loop's operation, which is not acceptable. Thanks to Oswald Buddenhagen for the proposed idea. [ChangeLog][QtCore][QAbstractEventDispatcher] The {un}registerEventNotifier() member functions have been removed. QWinEventNotifier is no longer needed to be registered in the event dispatcher. Change-Id: I140892fb909eaae0eabf2e07ebabcab78c43841c Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Diffstat (limited to 'src/corelib/kernel/qabstracteventdispatcher.h')
-rw-r--r--src/corelib/kernel/qabstracteventdispatcher.h9
1 files changed, 0 insertions, 9 deletions
diff --git a/src/corelib/kernel/qabstracteventdispatcher.h b/src/corelib/kernel/qabstracteventdispatcher.h
index 9a0a049ed4..717fdc8984 100644
--- a/src/corelib/kernel/qabstracteventdispatcher.h
+++ b/src/corelib/kernel/qabstracteventdispatcher.h
@@ -49,10 +49,6 @@ class QAbstractNativeEventFilter;
class QAbstractEventDispatcherPrivate;
class QSocketNotifier;
-#if defined(Q_OS_WIN) || defined(Q_CLANG_QDOC)
-class QWinEventNotifier;
-#endif
-
class Q_CORE_EXPORT QAbstractEventDispatcher : public QObject
{
Q_OBJECT
@@ -88,11 +84,6 @@ public:
virtual int remainingTime(int timerId) = 0;
-#if defined(Q_OS_WIN) || defined(Q_CLANG_QDOC)
- virtual bool registerEventNotifier(QWinEventNotifier *notifier) = 0;
- virtual void unregisterEventNotifier(QWinEventNotifier *notifier) = 0;
-#endif
-
virtual void wakeUp() = 0;
virtual void interrupt() = 0;