Message ID | 20220819132756.74641-1-akihiko.odaki@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | ui/cocoa: Run qemu_init in the main thread | expand |
On Fri, Aug 19, 2022 at 10:27:53PM +0900, Akihiko Odaki wrote: > 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. > > v5: Rebased to 4d65d4ba57372c57a1236fb5cb789dbcc100645c, restoring the > exit() call in call_qemu_main() and dropping Reviewed-by from > "ui/cocoa: Run qemu_init in the main thread". > > v4: Asynchronously call -[NSApplication terminate:] to avoid potential > deadlock with qemu_thread_join(). (Paolo Bonzini) > > v3: Document functions involved in startup. (Peter Maydell) > > v2: Restore allow_events flag to fix the crash reported by > Philippe Mathieu-Daudé. > > Akihiko Odaki (3): > ui/cocoa: Run qemu_init in the main thread > Revert "main-loop: Disable block backend global state assertion on > Cocoa" > meson: Allow to enable gtk and sdl while cocoa is enabled Patches added to queue. thanks, Gerd