mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-09-05 19:08:12 +00:00
pipewire: If hotplug initialization fails, clean up any partial success
hotplug_loop_init() calls pw_context_new(), which creates a thread internally (for the "data loop"). It also creates a thread of its own, the `hotplug_loop`. Both of these threads are running code from libpipewire, so before we can allow the Pipewire library to be unloaded, we need to destroy the context with pw_context_destroy() and destroy the `hotplug_loop` with pw_thread_loop_destroy(). Resolves: https://github.com/libsdl-org/SDL/issues/10787 Signed-off-by: Simon McVittie <smcv@collabora.com>
This commit is contained in:

committed by
Sam Lantinga

parent
817f1b3da8
commit
9c8c6da476
@@ -1252,6 +1252,7 @@ static bool PipewireInitialize(SDL_AudioDriverImpl *impl)
|
||||
}
|
||||
|
||||
if (!hotplug_loop_init()) {
|
||||
hotplug_loop_destroy();
|
||||
PIPEWIRE_Deinitialize();
|
||||
return false;
|
||||
}
|
||||
|
Reference in New Issue
Block a user