mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-09-05 19:08:12 +00:00
e923a458eacba3e8436b133d8ce0f6d1e0c21567

This specifically deals with two threads closing the same device at the same time, and a thread trying to reopen the device as it's still in process of being closed. This can happen in normal usage if a device is disconnected: the OS might send a disconnect event, while the device thread also attempts to manage a disconnect as system calls start to report failure. This effort is necessary because we have to release the device lock during close to allow the device thread to unblock and cleanly shutdown. But the good news is that all the places that call ClosePhysicalAudioDevice can now safely hold the device lock on entry, and that one function will manage the lock tapdancing.
Simple DirectMedia Layer (SDL) Version 3.0
Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. It is used by video playback software, emulators, and popular games including Valve's award winning catalog and many Humble Bundle games.
More extensive documentation is available in the docs directory, starting with README.md. If you are migrating to SDL 3.0 from SDL 2.0, the changes are extensively documented in README-migration.md.
Enjoy!
Sam Lantinga (slouken@libsdl.org)
Languages
C
86.4%
C++
5.9%
Objective-C
3.4%
CMake
1.6%
Perl
0.8%
Other
1.7%