From: Mohamed Akram <[email protected]> The check is faulty because the thread variable was assigned in the main thread while the main loop runs in a different thread on macOS.
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3070 Signed-off-by: Mohamed Akram <[email protected]> Acked-by: Marc-André Lureau <[email protected]> Message-ID: <[email protected]> (cherry picked from commit e7ecb533ee0dbfbe30c90abb213247f4943a9a12) Signed-off-by: Michael Tokarev <[email protected]> diff --git a/ui/spice-core.c b/ui/spice-core.c index 5992f9daec..2645e96ef6 100644 --- a/ui/spice-core.c +++ b/ui/spice-core.c @@ -50,8 +50,6 @@ static int spice_migration_completed; static int spice_display_is_running; static int spice_have_target_host; -static QemuThread me; - struct SpiceTimer { QEMUTimer *timer; }; @@ -222,7 +220,7 @@ static void channel_event(int event, SpiceChannelEventInfo *info) * thread and grab the BQL if so before calling qemu * functions. */ - bool need_lock = !qemu_thread_is_self(&me); + bool need_lock = !bql_locked(); if (need_lock) { bql_lock(); } @@ -675,8 +673,6 @@ static void qemu_spice_init(void) spice_wan_compression_t wan_compr; bool seamless_migration; - qemu_thread_get_self(&me); - if (!opts) { return; } -- 2.47.3
