diff options
| author | Morten Sørvig <morten.sorvig@qt.io> | 2025-07-15 11:49:00 +0200 |
|---|---|---|
| committer | Piotr Wiercinski <piotr.wiercinski@qt.io> | 2025-07-18 15:51:19 +0200 |
| commit | 12493936f2e121420c647e4cd479e4a020d753b6 (patch) | |
| tree | 3ed5404d423ab15d06ba592e46ab2330808b87a8 /src/tools/moc/preprocessor.cpp | |
| parent | d8a529b8cce701cc9b0bb60eb9cf1aa7ccaf6bd2 (diff) | |
wasm: don't reenter suspended instances
We should not call into an instance which is suspended,
since that would introduce a second stack and control
flow.
We can determine if an instance is suspended by Qt using
the "resume" field which holds the resume function. It
is however not possible to determine if an instance is
suspended in general, for instance if it has called
emscripten_sleep().
Instead, assume that we can never call into the instance
if asyncify/jspi is enabled, and make resuming the instance
the only way to process events.
This breaks support for returning control to the browser
(e.g. by not calling app->exec()) when asyncify is enabled,
which is unfortunate. When using asyncify exec() must
be called to begin event processng.
Fixes: QTBUG-137519
Pick-to: 6.10
Change-Id: Id8356f7fda624263fd3840f747370b23860738ab
Reviewed-by: Piotr Wierciński <piotr.wiercinski@qt.io>
Diffstat (limited to 'src/tools/moc/preprocessor.cpp')
0 files changed, 0 insertions, 0 deletions
