summaryrefslogtreecommitdiff
path: root/Source/3rdParty/SDL2/src/thread/pthread/SDL_sysmutex.c
diff options
context:
space:
mode:
Diffstat (limited to 'Source/3rdParty/SDL2/src/thread/pthread/SDL_sysmutex.c')
-rw-r--r--Source/3rdParty/SDL2/src/thread/pthread/SDL_sysmutex.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/Source/3rdParty/SDL2/src/thread/pthread/SDL_sysmutex.c b/Source/3rdParty/SDL2/src/thread/pthread/SDL_sysmutex.c
index e7b5b5c..e514778 100644
--- a/Source/3rdParty/SDL2/src/thread/pthread/SDL_sysmutex.c
+++ b/Source/3rdParty/SDL2/src/thread/pthread/SDL_sysmutex.c
@@ -116,6 +116,7 @@ int
SDL_TryLockMutex(SDL_mutex * mutex)
{
int retval;
+ int result;
#if FAKE_RECURSIVE_MUTEX
pthread_t this_thread;
#endif
@@ -134,18 +135,20 @@ SDL_TryLockMutex(SDL_mutex * mutex)
We set the locking thread id after we obtain the lock
so unlocks from other threads will fail.
*/
- if (pthread_mutex_trylock(&mutex->id) == 0) {
+ result = pthread_mutex_trylock(&mutex->id);
+ if (result == 0) {
mutex->owner = this_thread;
mutex->recursive = 0;
- } else if (errno == EBUSY) {
+ } else if (result == EBUSY) {
retval = SDL_MUTEX_TIMEDOUT;
} else {
retval = SDL_SetError("pthread_mutex_trylock() failed");
}
}
#else
- if (pthread_mutex_trylock(&mutex->id) != 0) {
- if (errno == EBUSY) {
+ result = pthread_mutex_trylock(&mutex->id);
+ if (result != 0) {
+ if (result == EBUSY) {
retval = SDL_MUTEX_TIMEDOUT;
} else {
retval = SDL_SetError("pthread_mutex_trylock() failed");