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> |
||
---|---|---|
.. | ||
accel-ops.h | ||
arch_init.h | ||
balloon.h | ||
block-backend-common.h | ||
block-backend-global-state.h | ||
block-backend-io.h | ||
block-backend.h | ||
blockdev.h | ||
cpu-throttle.h | ||
cpu-timers.h | ||
cpus.h | ||
cryptodev-vhost-user.h | ||
cryptodev-vhost.h | ||
cryptodev.h | ||
device_tree.h | ||
dirtylimit.h | ||
dirtyrate.h | ||
dma.h | ||
dump-arch.h | ||
dump.h | ||
event-loop-base.h | ||
hax.h | ||
hostmem.h | ||
hvf_int.h | ||
hvf.h | ||
hw_accel.h | ||
iothread.h | ||
kvm_int.h | ||
kvm.h | ||
memory_mapping.h | ||
numa.h | ||
nvmm.h | ||
os-posix.h | ||
os-win32.h | ||
qtest.h | ||
replay.h | ||
reset.h | ||
rng-random.h | ||
rng.h | ||
rtc.h | ||
runstate-action.h | ||
runstate.h | ||
seccomp.h | ||
sysemu.h | ||
tcg.h | ||
tpm_backend.h | ||
tpm_util.h | ||
tpm.h | ||
vhost-user-backend.h | ||
watchdog.h | ||
whpx.h | ||
xen-mapcache.h | ||
xen.h |