wasm: remove dead qt_asyncify_yield() code

The call to this function was behind a broken #define and
was never enabled. It also does not work, so remove it.

This means that calling processEvents() in a loop (as opposed
to calling exec()) most likely does not work either, which
is something we want to revisit.

Pick-to: 6.4
Change-Id: I90802a69d3a48e7f2b5d0b657d89452c09d9571a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This commit is contained in:
Morten Sørvig 2022-08-08 20:49:11 +02:00
parent fa0e24b641
commit 238e90cd58
2 changed files with 0 additions and 30 deletions

View File

@ -76,17 +76,6 @@ bool qt_asyncify_resume()
return true;
}
// Yields control to the browser, so that it can process events. Must
// be called on the main thread. Returns false immediately if Qt has
// already suspended the main thread. Returns true after yielding.
bool qt_asyncify_yield()
{
if (g_is_asyncify_suspended)
return false;
emscripten_sleep(0);
return true;
}
#endif // QT_HAVE_EMSCRIPTEN_ASYNCIFY
Q_CONSTINIT QEventDispatcherWasm *QEventDispatcherWasm::g_mainThreadEventDispatcher = nullptr;
@ -198,9 +187,6 @@ bool QEventDispatcherWasm::processEvents(QEventLoop::ProcessEventsFlags flags)
handleApplicationExec();
}
if (!(flags & QEventLoop::ExcludeUserInputEvents))
pollForNativeEvents();
hasPendingEvents = qGlobalPostedEventsCount() > 0;
if (!hasPendingEvents && (flags & QEventLoop::WaitForMoreEvents))
@ -386,21 +372,6 @@ void QEventDispatcherWasm::handleDialogExec()
// For the asyncify case we do nothing here and wait for events in wait()
}
void QEventDispatcherWasm::pollForNativeEvents()
{
// Secondary thread event dispatchers do not support native events
if (isSecondaryThreadEventDispatcher())
return;
#if HAVE_EMSCRIPTEN_ASYNCIFY
// Asyncify allows us to yield to the browser and have it process native events -
// but this will fail if we are recursing and are already in a yield.
bool didYield = qt_asyncify_yield();
if (!didYield)
qWarning("QEventDispatcherWasm::processEvents() did not asyncify process native events");
#endif
}
// Blocks/suspends the calling thread. This is possible in two cases:
// - Caller is a secondary thread: block on m_moreEvents
// - Caller is the main thread and asyncify is enabled: suspend using qt_asyncify_suspend()

View File

@ -62,7 +62,6 @@ private:
void handleApplicationExec();
void handleDialogExec();
void pollForNativeEvents();
bool wait(int timeout = -1);
bool wakeEventDispatcherThread();
static void callProcessEvents(void *eventDispatcher);