SDL/include
Sam Lantinga d59caffe2c Added support for clang thread-safety analysis
The annotations have been added to SDL_mutex.h and have been made public so applications can enable this for their own code.

Clang assumes that locking and unlocking can't fail, but SDL has the concept of a NULL mutex, so the mutex functions have been changed not to report errors if a mutex hasn't been initialized. We do have mutexes that might be accessed when they are NULL, notably in the event system, so this is an important change.

This commit cleans up a bunch of rare race conditions in the joystick and game controller code so now everything should be completely protected by the joystick lock.

To test this, change the compiler to "clang -Wthread-safety -Werror=thread-safety -DSDL_THREAD_SAFETY_ANALYSIS"
2022-12-14 09:29:19 -08:00
..
begin_code.h
close_code.h
SDL.h Sync SDL2 wiki -> header 2022-11-22 23:21:36 +00:00
SDL_assert.h
SDL_atomic.h Use __ARM_ARCH instead of __ARM_ARCH__ 2022-08-19 13:15:28 -07:00
SDL_audio.h reverted const removal from SDL_NewAudioStream in commit d0bbfdbfb. 2022-12-04 12:55:15 +03:00
SDL_bits.h
SDL_blendmode.h
SDL_clipboard.h Sync SDL wiki -> header 2022-10-25 18:07:13 +00:00
SDL_config.h
SDL_config.h.cmake Removed check for _HAVE_STDINT_H, which nobody defines 2022-12-01 12:54:02 -08:00
SDL_config.h.in add missing strcasestr checks to cmake and autotools build systems, 2022-11-20 14:20:33 -08:00
SDL_config_android.h add missing strcasestr checks to cmake and autotools build systems, 2022-11-20 14:20:33 -08:00
SDL_config_emscripten.h
SDL_config_iphoneos.h add missing strcasestr checks to cmake and autotools build systems, 2022-11-20 14:20:33 -08:00
SDL_config_macosx.h add missing strcasestr checks to cmake and autotools build systems, 2022-11-20 14:20:33 -08:00
SDL_config_minimal.h Removed check for _HAVE_STDINT_H, which nobody defines 2022-12-01 12:54:02 -08:00
SDL_config_ngage.h
SDL_config_os2.h updated os2 config file after commit 3f89d1704d 2022-09-01 21:56:50 +03:00
SDL_config_pandora.h
SDL_config_windows.h Removed check for _HAVE_STDINT_H, which nobody defines 2022-12-01 12:54:02 -08:00
SDL_config_wingdk.h Assume that stdint.h is available on Windows with compilers other than MSVC <= 2008 2022-09-05 09:01:31 -07:00
SDL_config_winrt.h Assume that stdint.h is available on Windows with compilers other than MSVC <= 2008 2022-09-05 09:01:31 -07:00
SDL_config_xbox.h Assume that stdint.h is available on Windows with compilers other than MSVC <= 2008 2022-09-05 09:01:31 -07:00
SDL_copying.h
SDL_cpuinfo.h SDL_cpuinfo: define __ARM_ARCH=8 for _M_ARM64 2022-10-24 10:39:14 -07:00
SDL_egl.h Updated to the latest version of OpenGL and Vulkan headers from the Khronos registry 2022-09-14 09:14:47 -07:00
SDL_endian.h Applied DragonFly BSD patch 2022-07-30 16:32:21 -07:00
SDL_error.h
SDL_events.h Updated variable name for mouse coordinates in mouse wheel events 2022-10-08 13:18:00 -07:00
SDL_filesystem.h Sync SDL wiki -> header 2022-11-15 05:25:16 +00:00
SDL_gamecontroller.h Clarified where the paddle locations are 2022-12-07 14:47:07 -08:00
SDL_gesture.h
SDL_guid.h
SDL_haptic.h
SDL_hidapi.h
SDL_hints.h Updated patch notes for 2.26 release 2022-11-17 09:00:27 -08:00
SDL_joystick.h Added support for clang thread-safety analysis 2022-12-14 09:29:19 -08:00
SDL_keyboard.h Exposed SDL_ResetKeyboard() as a public function 2022-07-11 09:49:00 -07:00
SDL_keycode.h
SDL_loadso.h
SDL_locale.h
SDL_log.h
SDL_main.h SDL_main.h: added field to SDL_GDKSuspendComplete documentation. 2022-12-01 20:37:00 +03:00
SDL_messagebox.h
SDL_metal.h Fix \sa to a valid function in SDL_metal.h. 2022-10-07 07:15:53 -07:00
SDL_misc.h
SDL_mouse.h docs: Note that you don't need to free SDL_GetDefaultCursor's results. 2022-12-09 22:09:39 -05:00
SDL_mutex.h Added support for clang thread-safety analysis 2022-12-14 09:29:19 -08:00
SDL_name.h
SDL_opengl.h Removed obsolete extension definitions 2022-09-15 06:19:18 -07:00
SDL_opengl_glext.h fix permissions of SDL_opengl_glext.h 2022-09-15 11:55:04 +03:00
SDL_opengles.h
SDL_opengles2.h
SDL_opengles2_gl2.h Updated to the latest version of OpenGL and Vulkan headers from the Khronos registry 2022-09-14 09:14:47 -07:00
SDL_opengles2_gl2ext.h Updated to the latest version of OpenGL and Vulkan headers from the Khronos registry 2022-09-14 09:14:47 -07:00
SDL_opengles2_gl2platform.h Updated to the latest version of OpenGL and Vulkan headers from the Khronos registry 2022-09-14 09:14:47 -07:00
SDL_opengles2_khrplatform.h Updated to the latest version of OpenGL and Vulkan headers from the Khronos registry 2022-09-14 09:14:47 -07:00
SDL_pixels.h
SDL_platform.h N3DS port (squashed) 2022-10-10 08:50:59 -07:00
SDL_power.h Clang-Tidy fixes (#6725) 2022-12-01 13:08:50 -08:00
SDL_quit.h
SDL_rect.h
SDL_render.h Sync SDL wiki -> header 2022-08-21 14:05:04 +00:00
SDL_revision.h build: Add a mechanism to mark builds with vendor info 2022-10-22 09:27:10 -07:00
SDL_revision.h.cmake build: Add a mechanism to mark builds with vendor info 2022-10-22 09:27:10 -07:00
SDL_rwops.h
SDL_scancode.h Added documentation for some scancodes 2022-10-14 06:33:38 -07:00
SDL_sensor.h Sync SDL wiki -> header 2022-10-25 18:07:13 +00:00
SDL_shape.h
SDL_stdinc.h Added SDL_strcasestr() for a case insensitive version of SDL_strstr() 2022-11-05 15:58:30 -07:00
SDL_surface.h Clang-Tidy fixes (#6725) 2022-12-01 13:08:50 -08:00
SDL_system.h
SDL_syswm.h
SDL_test.h
SDL_test_assert.h
SDL_test_common.h Added a command line option --info event_motion to show mouse and finger motion events 2022-07-29 20:37:38 -07:00
SDL_test_compare.h
SDL_test_crc32.h
SDL_test_font.h
SDL_test_fuzzer.h
SDL_test_harness.h
SDL_test_images.h
SDL_test_log.h
SDL_test_md5.h Revert "SDL_test_md5.h: fix MD5UINT4 type to be really 32 bits." 2022-11-30 05:59:56 -08:00
SDL_test_memory.h
SDL_test_random.h
SDL_thread.h
SDL_timer.h
SDL_touch.h
SDL_types.h
SDL_version.h Updated to version 2.27.0 for development 2022-11-21 16:36:10 -08:00
SDL_video.h Added SDL_DISPLAYEVENT_MOVED to detect when display positioning changes 2022-12-08 12:46:13 -08:00
SDL_vulkan.h