bab6a301c5
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> |
||
---|---|---|
.. | ||
atomics.rst | ||
bitops.rst | ||
blkdebug.txt | ||
blkverify.txt | ||
block-coroutine-wrapper.rst | ||
build-system.rst | ||
ci-definitions.rst.inc | ||
ci-jobs.rst.inc | ||
ci-runners.rst.inc | ||
ci.rst | ||
clocks.rst | ||
code-of-conduct.rst | ||
conflict-resolution.rst | ||
control-flow-integrity.rst | ||
decodetree.rst | ||
ebpf_rss.rst | ||
fuzzing.rst | ||
index-api.rst | ||
index-build.rst | ||
index-internals.rst | ||
index-process.rst | ||
index-tcg.rst | ||
index.rst | ||
kconfig.rst | ||
loads-stores.rst | ||
lockcnt.txt | ||
memory.rst | ||
migration.rst | ||
modules.rst | ||
multi-process.rst | ||
multi-thread-tcg.rst | ||
multiple-iothreads.txt | ||
qapi-code-gen.rst | ||
qgraph.rst | ||
qom.rst | ||
qtest.rst | ||
rcu.txt | ||
replay.rst | ||
reset.rst | ||
s390-dasd-ipl.rst | ||
secure-coding-practices.rst | ||
stable-process.rst | ||
style.rst | ||
submitting-a-patch.rst | ||
submitting-a-pull-request.rst | ||
tcg-icount.rst | ||
tcg-plugins.rst | ||
tcg.rst | ||
testing.rst | ||
tracing.rst | ||
trivial-patches.rst | ||
ui.rst | ||
vfio-migration.rst | ||
virtio-backends.rst | ||
virtio-migration.txt | ||
writing-monitor-commands.rst |