summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qwineventnotifier.cpp
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-06-28 14:08:52 +0200
committerLiang Qi <liang.qi@qt.io>2017-06-28 12:28:39 +0000
commit80406bd6200e741740e333baa2d2095e03f1327c (patch)
tree01a318828521408a1802369c8a94d036990bc0ff /src/corelib/kernel/qwineventnotifier.cpp
parent57a77fe775886b17fc267a4acb490890748d9ee0 (diff)
Revert "Support more than 62 instances of QWinEventNotifier"
It breaks sth in QLocalSocket which is used in QtRemoteObject. This reverts commit 5c6210e3452f78cab2f58887e747eb5cb2501f70. Task-number: QTBUG-61668 Change-Id: Ib11890923773496e5d998b7709ef93b0a839a759 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'src/corelib/kernel/qwineventnotifier.cpp')
-rw-r--r--src/corelib/kernel/qwineventnotifier.cpp60
1 files changed, 14 insertions, 46 deletions
diff --git a/src/corelib/kernel/qwineventnotifier.cpp b/src/corelib/kernel/qwineventnotifier.cpp
index 6bfa6ca729..0808374a6a 100644
--- a/src/corelib/kernel/qwineventnotifier.cpp
+++ b/src/corelib/kernel/qwineventnotifier.cpp
@@ -37,7 +37,7 @@
**
****************************************************************************/
-#include "qwineventnotifier_p.h"
+#include "qwineventnotifier.h"
#ifdef Q_OS_WINRT
#include "qeventdispatcher_winrt_p.h"
@@ -50,6 +50,19 @@
QT_BEGIN_NAMESPACE
+class QWinEventNotifierPrivate : public QObjectPrivate
+{
+ Q_DECLARE_PUBLIC(QWinEventNotifier)
+public:
+ QWinEventNotifierPrivate()
+ : handleToEvent(0), enabled(false) {}
+ QWinEventNotifierPrivate(HANDLE h, bool e)
+ : handleToEvent(h), enabled(e) {}
+
+ HANDLE handleToEvent;
+ bool enabled;
+};
+
/*!
\class QWinEventNotifier
\inmodule QtCore
@@ -233,49 +246,4 @@ bool QWinEventNotifier::event(QEvent * e)
return false;
}
-#if defined(Q_OS_WINRT)
-
-bool QWinEventNotifierPrivate::registerWaitObject()
-{
- Q_UNIMPLEMENTED();
- return false;
-}
-
-void QWinEventNotifierPrivate::unregisterWaitObject()
-{
- Q_UNIMPLEMENTED();
-}
-
-#else // defined(Q_OS_WINRT)
-
-static void CALLBACK wfsoCallback(void *context, BOOLEAN /*ignore*/)
-{
- QWinEventNotifierPrivate *nd = reinterpret_cast<QWinEventNotifierPrivate *>(context);
- QAbstractEventDispatcher *eventDispatcher = nd->threadData->eventDispatcher.load();
- QEventDispatcherWin32Private *edp = QEventDispatcherWin32Private::get(
- static_cast<QEventDispatcherWin32 *>(eventDispatcher));
- SetEvent(edp->winEventNotifierActivatedEvent);
-}
-
-bool QWinEventNotifierPrivate::registerWaitObject()
-{
- if (RegisterWaitForSingleObject(&waitHandle, handleToEvent, wfsoCallback, this,
- INFINITE, WT_EXECUTEONLYONCE) == 0) {
- qErrnoWarning("QWinEventNotifier: RegisterWaitForSingleObject failed.");
- return false;
- }
- return true;
-}
-
-void QWinEventNotifierPrivate::unregisterWaitObject()
-{
- // Unregister the wait handle and wait for pending callbacks to finish.
- if (UnregisterWaitEx(waitHandle, INVALID_HANDLE_VALUE))
- waitHandle = NULL;
- else
- qErrnoWarning("QWinEventNotifier: UnregisterWaitEx failed.");
-}
-
-#endif // !defined(Q_OS_WINRT)
-
QT_END_NAMESPACE