Browse Source

Document that condition variable mutexes can't be locked recursively.

Fixes https://github.com/libsdl-org/SDL/issues/5497
Sam Lantinga 2 years ago
parent
commit
5ed00d34aa
1 changed files with 6 additions and 2 deletions
  1. 6 2
      include/SDL3/SDL_mutex.h

+ 6 - 2
include/SDL3/SDL_mutex.h

@@ -481,7 +481,9 @@ extern DECLSPEC int SDLCALL SDL_CondBroadcast(SDL_cond *cond);
  * `cond`. Once the condition variable is signaled, the mutex is re-locked and
  * the function returns.
  *
- * The mutex must be locked before calling this function.
+ * The mutex must be locked before calling this function. Locking the
+ * mutex recursively (more than once) is not supported and leads to
+ * undefined behavior.
  *
  * This function is the equivalent of calling SDL_CondWaitTimeout() with a
  * time length of `SDL_MUTEX_MAXWAIT`.
@@ -510,7 +512,9 @@ extern DECLSPEC int SDLCALL SDL_CondWait(SDL_cond *cond, SDL_mutex *mutex);
  * signaled or the time elapsed, the mutex is re-locked and the function
  * returns.
  *
- * The mutex must be locked before calling this function.
+ * The mutex must be locked before calling this function. Locking the
+ * mutex recursively (more than once) is not supported and leads to
+ * undefined behavior.
  *
  * \param cond the condition variable to wait on
  * \param mutex the mutex used to coordinate thread access