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 Check if GNC is defined before checking its value to solve warns in msvc 2022-07-03 00:56:09 -07:00
close_code.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL.h Sync SDL2 wiki -> header 2022-11-22 23:21:36 +00:00
SDL_assert.h Check if GNC is defined before checking its value to solve warns in msvc 2022-07-03 00:56:09 -07:00
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 Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_blendmode.h direct3d: Implement missing blend operations. 2022-03-27 09:14:07 -04:00
SDL_clipboard.h Sync SDL wiki -> header 2022-10-25 18:07:13 +00:00
SDL_config.h Xbox GDKX support (#5869) 2022-07-01 13:59:14 -07:00
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 add SDL_bsearch 2022-04-26 04:03:25 +03:00
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 N-Gage port: add changes from code reviews, overall cleanup (#5618) 2022-05-11 09:31:34 -07:00
SDL_config_os2.h updated os2 config file after commit 3f89d1704d 2022-09-01 21:56:50 +03:00
SDL_config_pandora.h add SDL_bsearch 2022-04-26 04:03:25 +03:00
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 Updated copyright for 2022 2022-01-03 09:40:21 -08:00
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 Updated copyright for 2022 2022-01-03 09:40:21 -08:00
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 Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_guid.h Sync wiki -> header 2022-06-05 00:24:04 +00:00
SDL_haptic.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_hidapi.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
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 Add SDL_SCANCODE_CALL and SDL_SCANCODE_ENDCALL 2022-05-10 16:12:10 -07:00
SDL_loadso.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_locale.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_log.h Document that SDL_MAX_LOG_MESSAGE is no longer meaningful 2022-04-29 11:28:59 -07:00
SDL_main.h SDL_main.h: added field to SDL_GDKSuspendComplete documentation. 2022-12-01 20:37:00 +03:00
SDL_messagebox.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_metal.h Fix \sa to a valid function in SDL_metal.h. 2022-10-07 07:15:53 -07:00
SDL_misc.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
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 Updated copyright for 2022 2022-01-03 09:40:21 -08:00
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 Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_opengles2.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
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 Updated copyright for 2022 2022-01-03 09:40:21 -08:00
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 Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_rect.h Avoid unintended float -> double conversion in SDL_FRectEqualsEpsilon 2022-05-19 11:47:03 -07:00
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 Windows GDK Support (#5830) 2022-06-27 10:19:39 -07:00
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 Updated copyright for 2022 2022-01-03 09:40:21 -08:00
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 Sync SDL wiki -> header 2022-06-27 17:20:12 +00:00
SDL_syswm.h wayland: Add support for TOOLTIP/POPUP_MENU 2022-04-18 12:31:02 -04:00
SDL_test.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_test_assert.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
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 Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_test_crc32.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_test_font.h Removed comment text that looks like doxygen commands 2022-07-01 14:04:07 -07:00
SDL_test_fuzzer.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_test_harness.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_test_images.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_test_log.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
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 Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_test_random.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_thread.h Windows GDK Support (#5830) 2022-06-27 10:19:39 -07:00
SDL_timer.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
SDL_touch.h Sync wiki -> header 2022-02-08 10:37:04 +00:00
SDL_types.h Updated copyright for 2022 2022-01-03 09:40:21 -08:00
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 Sync wiki -> header 2021-10-27 01:36:05 +00:00