mirror of https://github.com/encounter/SDL.git
Fixed bug 3258 - SDL_TryLockMutex blocks for pthreads with FAKE_RECURSIVE_MUTEX
Ian Abbott I just spotted what I think is a bug in "src/thread/pthread/SDL_sysmutex.c" in the SDL_TryLockMutex function when FAKE_RECURSIVE_MUTEX is defined (for an implementation of Pthreads with no recursive mutex support). It calls pthread_mutex_lock instead of pthread_mutex_trylock, so it will block until the mutex is available instead of returning SDL_MUTEX_TIMEDOUT if it cannot lock the mutex immediately.
This commit is contained in:
parent
b5ea3c6d07
commit
7229397c0c
|
@ -134,7 +134,7 @@ SDL_TryLockMutex(SDL_mutex * mutex)
|
||||||
We set the locking thread id after we obtain the lock
|
We set the locking thread id after we obtain the lock
|
||||||
so unlocks from other threads will fail.
|
so unlocks from other threads will fail.
|
||||||
*/
|
*/
|
||||||
if (pthread_mutex_lock(&mutex->id) == 0) {
|
if (pthread_mutex_trylock(&mutex->id) == 0) {
|
||||||
mutex->owner = this_thread;
|
mutex->owner = this_thread;
|
||||||
mutex->recursive = 0;
|
mutex->recursive = 0;
|
||||||
} else if (errno == EBUSY) {
|
} else if (errno == EBUSY) {
|
||||||
|
|
Loading…
Reference in New Issue