summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/corelib/platform/wasm/qwasmsuspendresumecontrol.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/corelib/platform/wasm/qwasmsuspendresumecontrol.cpp b/src/corelib/platform/wasm/qwasmsuspendresumecontrol.cpp
index 9357db4ab8f..e03ca89f4ce 100644
--- a/src/corelib/platform/wasm/qwasmsuspendresumecontrol.cpp
+++ b/src/corelib/platform/wasm/qwasmsuspendresumecontrol.cpp
@@ -164,15 +164,17 @@ bool QWasmSuspendResumeControl::sendPendingEvents()
Q_ASSERT(emscripten_is_main_runtime_thread());
#endif
emscripten::val pendingEvents = suspendResumeControlJs()["pendingEvents"];
- int count = pendingEvents["length"].as<int>();
- if (count == 0)
- return false;
- while (count-- > 0) {
+ if (pendingEvents["length"].as<int>() == 0)
+ return 0;
+
+ int count = 0;
+ while (pendingEvents["length"].as<int>() > 0) { // Make sure it is reentrant
// Grab one event (handler and arg), and call it
emscripten::val event = pendingEvents.call<val>("shift");
auto it = m_eventHandlers.find(event["index"].as<int>());
Q_ASSERT(it != m_eventHandlers.end());
it->second(event["arg"]);
+ ++count;
}
return true;
}