sdlTryLockRwLockForReading function mutex

bool sdlTryLockRwLockForReading(
  1. Pointer<SdlRwLock> rwlock
)

Try to lock a read/write lock for reading without blocking.

This works just like SDL_LockRWLockForReading(), but if the rwlock is not available, then this function returns false immediately.

This technique is useful if you need access to a resource but don't want to wait for it, and will return to it to try again later.

Trying to lock for read-only access can succeed if other threads are holding read-only locks, as this won't prevent access.

This function returns true if passed a NULL rwlock.

\param rwlock the rwlock to try to lock. \returns true on success, false if the lock would block.

\threadsafety It is safe to call this function from any thread.

\since This function is available since SDL 3.2.0.

\sa SDL_LockRWLockForReading \sa SDL_TryLockRWLockForWriting \sa SDL_UnlockRWLock

extern SDL_DECLSPEC bool SDLCALL SDL_TryLockRWLockForReading(SDL_RWLock *rwlock) SDL_TRY_ACQUIRE_SHARED(true, rwlock)

Implementation

bool sdlTryLockRwLockForReading(Pointer<SdlRwLock> rwlock) {
  final sdlTryLockRwLockForReadingLookupFunction = _libSdl
      .lookupFunction<
        Uint8 Function(Pointer<SdlRwLock> rwlock),
        int Function(Pointer<SdlRwLock> rwlock)
      >('SDL_TryLockRWLockForReading');
  return sdlTryLockRwLockForReadingLookupFunction(rwlock) == 1;
}