Provided by: libsdl3-doc_3.2.26+ds-2_all bug

NAME

       SDL_CreateRWLock - Create a new read/write lock.

SYNOPSIS

       #include <SDL3/SDL_mutex.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

       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

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

Simple Directmedia Layer                           SDL 3.2.26                                SDL_CreateRWLock(3)