Provided by: libsdl3-doc_3.2.8+ds-1_all bug

NAME

       SDL_CreateRWLock - Create a new read/write lock.

HEADER FILE

       Defined in SDL3/SDL_mutex.h

SYNOPSIS

       #include "SDL3/SDL.h"

       SDL_RWLock * SDL_CreateRWLock(void);

DESCRIPTION

       A  read/write  lock  is useful for situations where you have multiple threads trying to access a resource
       that is rarely updated. All threads requesting a read-only lock will be allowed to run in parallel; if  a
       thread  requests  a  write  lock,  it  will be provided exclusive access. This makes it safe for multiple
       threads to use a resource at the same time if they promise not to change  it,  and  when  it  has  to  be
       changed, the rwlock will serve as a gateway to make sure those changes can be made safely.

       In  the  right  situation,  a  rwlock can be more efficient than a mutex, which only lets a single thread
       proceed at a time, even if it won't be modifying the data.

       All newly-created read/write locks begin in the _unlocked_ state.

       Calls to SDL_LockRWLockForReading () and

       SDL_LockRWLockForWriting
        will not return while the rwlock is locked _for writing_ by another thread. See

       SDL_TryLockRWLockForReading () and

       SDL_TryLockRWLockForWriting () to attempt to lock without blocking.

       SDL read/write locks are only recursive for read-only locks! They are  not  guaranteed  to  be  fair,  or
       provide  access in a FIFO manner! They are not guaranteed to favor writers. You may not lock a rwlock for
       both read-only and write access at the same time from the same thread (so you can't  promote  your  read-
       only lock to a write lock without unlocking first).

RETURN VALUE

       ( SDL_RWLock
        *)  Returns  the  initialized  and unlocked read/write lock or NULL on failure; call SDL_GetError () for
       more information.

AVAILABILITY

       This function is available since SDL 3.2.0.

SEE ALSO

       (3), SDL_DestroyRWLock(3), (3), SDL_LockRWLockForReading(3), (3),  SDL_LockRWLockForWriting(3),  (3),
       SDL_TryLockRWLockForReading(3), (3), SDL_TryLockRWLockForWriting(3), (3), SDL_UnlockRWLock(3)

Simple Directmedia Layer                            SDL 3.2.8                                SDL_CreateRWLock(3)