diff options
author | Akihiko Odaki <akihiko.odaki@gmail.com> | 2022-08-19 22:27:54 +0900 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2022-09-23 14:36:33 +0200 |
commit | bab6a301c58286229ca8fbc36728d1469f243260 (patch) | |
tree | 82377727d84f3d0a6c8348fe9073d530d1b4c3d9 /tests/qtest/fuzz | |
parent | df6322a8973b5e69bdc8931ff79d3bfe3901cab5 (diff) | |
download | qemu-bab6a301c58286229ca8fbc36728d1469f243260.zip qemu-bab6a301c58286229ca8fbc36728d1469f243260.tar.gz qemu-bab6a301c58286229ca8fbc36728d1469f243260.tar.bz2 |
ui/cocoa: Run qemu_init in the main thread
This work is based on:
https://patchew.org/QEMU/20220317125534.38706-1-philippe.mathieu.daude@gmail.com/
Simplify the initialization dance by running qemu_init() in the main
thread before the Cocoa event loop starts. The secondary thread only
runs only qemu_main_loop() and qemu_cleanup().
This fixes a case where addRemovableDevicesMenuItems() calls
qmp_query_block() while expecting the main thread to still hold
the BQL.
Overriding the code after calling qemu_init() is done by dynamically
replacing a function pointer variable, qemu_main when initializing
ui/cocoa, which unifies the static implementation of main() for
builds with ui/cocoa and ones without ui/cocoa.
Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com>
Message-Id: <20220819132756.74641-2-akihiko.odaki@gmail.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'tests/qtest/fuzz')
-rw-r--r-- | tests/qtest/fuzz/fuzz.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/tests/qtest/fuzz/fuzz.c b/tests/qtest/fuzz/fuzz.c index 2b3bc1f..eb75205 100644 --- a/tests/qtest/fuzz/fuzz.c +++ b/tests/qtest/fuzz/fuzz.c @@ -218,7 +218,7 @@ int LLVMFuzzerInitialize(int *argc, char ***argv, char ***envp) g_free(pretty_cmd_line); } - qemu_init(result.we_wordc, result.we_wordv, NULL); + qemu_init(result.we_wordc, result.we_wordv); /* re-enable the rcu atfork, which was previously disabled in qemu_init */ rcu_enable_atfork(); |