SDL/include/SDL3
Sam Lantinga 5c29b58e95 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:53:39 -08:00
..
SDL.h gesture: Removed the gesture API from SDL3. 2022-12-13 14:54:37 -05:00
SDL_assert.h SDL_assert: remove old define for obsolete naming 2022-12-10 17:21:51 +01:00
SDL_atomic.h
SDL_audio.h re-applied the SDL_NewAudioStream deconstification, including to its definition 2022-12-04 20:50:20 +03:00
SDL_bits.h
SDL_blendmode.h
SDL_clipboard.h
SDL_copying.h
SDL_cpuinfo.h Move intrinsic includes into a private header 2022-12-04 09:34:10 -08:00
SDL_egl.h
SDL_endian.h
SDL_error.h
SDL_events.h gesture: Removed the gesture API from SDL3. 2022-12-13 14:54:37 -05:00
SDL_filesystem.h
SDL_gamecontroller.h Clarified where the paddle locations are 2022-12-07 14:17:58 -08:00
SDL_guid.h
SDL_haptic.h
SDL_hidapi.h
SDL_hints.h Renamed AUDIODRIVER and VIDEODRIVER hint/env to AUDIO_DRIVER and VIDEO_DRIVER 2022-12-08 09:50:09 -05:00
SDL_joystick.h Added support for clang thread-safety analysis 2022-12-14 09:53:39 -08:00
SDL_keyboard.h
SDL_keycode.h
SDL_loadso.h
SDL_locale.h
SDL_log.h
SDL_main.h Rename SDLmain to SDL_main and SDLtest to SDL_test for consistency with other SDL libraries 2022-11-28 10:57:59 -08:00
SDL_messagebox.h
SDL_metal.h
SDL_misc.h
SDL_mouse.h docs: Note that you don't need to free SDL_GetDefaultCursor's results. 2022-12-09 22:08:40 -05:00
SDL_mutex.h Added support for clang thread-safety analysis 2022-12-14 09:53:39 -08:00
SDL_name.h
SDL_opengl.h
SDL_opengl_glext.h
SDL_opengles.h
SDL_opengles2.h
SDL_opengles2_gl2.h
SDL_opengles2_gl2ext.h
SDL_opengles2_gl2platform.h
SDL_opengles2_khrplatform.h
SDL_pixels.h Remove mask versions of SDL_CreateRGBSurface* #6701 (#6711) 2022-12-01 08:04:02 -08:00
SDL_platform.h
SDL_power.h Clang-Tidy fixes (#6725) 2022-12-01 13:07:03 -08:00
SDL_quit.h
SDL_rect.h
SDL_render.h render: Remove SDL_GetRenderDriverInfo and change SDL_CreateRenderer. 2022-12-13 23:27:35 -05:00
SDL_revision.h
SDL_rwops.h
SDL_scancode.h
SDL_sensor.h Removed SDL_SensorGetDataWithTimestamp() and SDL_GameControllerGetSensorDataWithTimestamp() 2022-12-04 09:29:28 -08:00
SDL_shape.h
SDL_stdinc.h
SDL_surface.h Clang-Tidy fixes (#6725) 2022-12-01 13:07:03 -08:00
SDL_system.h
SDL_syswm.h
SDL_test.h
SDL_test_assert.h
SDL_test_common.h
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 SDL_test_md5.h: fix MD5UINT4 type to be really 32 bits. 2022-11-29 08:53:56 -08:00
SDL_test_memory.h
SDL_test_random.h
SDL_thread.h
SDL_timer.h Convert ticks to 64-bit, added nanosecond precision to the API 2022-12-02 12:37:41 -08:00
SDL_touch.h gesture: Removed the gesture API from SDL3. 2022-12-13 14:54:37 -05:00
SDL_version.h
SDL_video.h Added SDL_DISPLAYEVENT_MOVED to detect when display positioning changes 2022-12-08 12:47:56 -08:00
SDL_vulkan.h
begin_code.h begin_code.h: add gcc version checks to the alloc_size attributes. 2022-11-30 11:33:32 +03:00
close_code.h