diff options
Diffstat (limited to 'tests/manual/wasm/eventloop/asyncify_exec')
-rw-r--r-- | tests/manual/wasm/eventloop/asyncify_exec/CMakeLists.txt | 12 | ||||
-rw-r--r-- | tests/manual/wasm/eventloop/asyncify_exec/main.cpp | 25 |
2 files changed, 37 insertions, 0 deletions
diff --git a/tests/manual/wasm/eventloop/asyncify_exec/CMakeLists.txt b/tests/manual/wasm/eventloop/asyncify_exec/CMakeLists.txt new file mode 100644 index 0000000000..fe7cfb9030 --- /dev/null +++ b/tests/manual/wasm/eventloop/asyncify_exec/CMakeLists.txt @@ -0,0 +1,12 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + +qt_internal_add_manual_test(asyncify_exec + SOURCES + main.cpp + LIBRARIES + Qt::Core +) + +# Enable asyncify for this test. Also enable optimizations in order to reduce the binary size. +target_link_options(asyncify_exec PUBLIC -sASYNCIFY -Os) diff --git a/tests/manual/wasm/eventloop/asyncify_exec/main.cpp b/tests/manual/wasm/eventloop/asyncify_exec/main.cpp new file mode 100644 index 0000000000..f09163184d --- /dev/null +++ b/tests/manual/wasm/eventloop/asyncify_exec/main.cpp @@ -0,0 +1,25 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only +#include <QtCore> + +// This test shows how to use asyncify to enable blocking the main +// thread on QEventLoop::exec(), while event processing continues. +int main(int argc, char **argv) +{ + QCoreApplication app(argc, argv); + + QTimer::singleShot(1000, []() { + + QEventLoop loop; + QTimer::singleShot(2000, [&loop]() { + qDebug() << "Calling QEventLoop::quit()"; + loop.quit(); + }); + + qDebug() << "Calling QEventLoop::exec()"; + loop.exec(); + qDebug() << "Returned from QEventLoop::exec()"; + }); + + app.exec(); +} |