diff options
author | 2023-02-26 19:40:37 +0100 | |
---|---|---|
committer | 2023-02-27 05:40:37 +1100 | |
commit | bd59a0d447b861982429905f186dee8b12f2e777 (patch) | |
tree | dc6341c8fb098818039127f758cf3eb0fade986a /3rdparty/SDL2/src/thread/pthread/SDL_syscond.c | |
parent | 28b03e92a84daf79eb3cef75c51c014b2f57807b (diff) |
Removed local copy of SDL source and update Android build support. (#10899)
* Removed SDL2 source.
* Updated gradle.
* Updated SDL2 Java support glue code.
* Increased minimum supported Android API version to 24.
* Updated required asset files for Android app.
* Added proper tag for Android logging.
* Added SDL2 hint to make BGFX work on Android.
Diffstat (limited to '3rdparty/SDL2/src/thread/pthread/SDL_syscond.c')
-rw-r--r-- | 3rdparty/SDL2/src/thread/pthread/SDL_syscond.c | 158 |
1 files changed, 0 insertions, 158 deletions
diff --git a/3rdparty/SDL2/src/thread/pthread/SDL_syscond.c b/3rdparty/SDL2/src/thread/pthread/SDL_syscond.c deleted file mode 100644 index 998ac55b3fa..00000000000 --- a/3rdparty/SDL2/src/thread/pthread/SDL_syscond.c +++ /dev/null @@ -1,158 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ -#include "../../SDL_internal.h" - -#include <sys/time.h> -#include <time.h> -#include <unistd.h> -#include <errno.h> -#include <pthread.h> - -#include "SDL_thread.h" -#include "SDL_sysmutex_c.h" - -struct SDL_cond -{ - pthread_cond_t cond; -}; - -/* Create a condition variable */ -SDL_cond * -SDL_CreateCond(void) -{ - SDL_cond *cond; - - cond = (SDL_cond *) SDL_malloc(sizeof(SDL_cond)); - if (cond) { - if (pthread_cond_init(&cond->cond, NULL) < 0) { - SDL_SetError("pthread_cond_init() failed"); - SDL_free(cond); - cond = NULL; - } - } - return (cond); -} - -/* Destroy a condition variable */ -void -SDL_DestroyCond(SDL_cond * cond) -{ - if (cond) { - pthread_cond_destroy(&cond->cond); - SDL_free(cond); - } -} - -/* Restart one of the threads that are waiting on the condition variable */ -int -SDL_CondSignal(SDL_cond * cond) -{ - int retval; - - if (!cond) { - return SDL_SetError("Passed a NULL condition variable"); - } - - retval = 0; - if (pthread_cond_signal(&cond->cond) != 0) { - return SDL_SetError("pthread_cond_signal() failed"); - } - return retval; -} - -/* Restart all threads that are waiting on the condition variable */ -int -SDL_CondBroadcast(SDL_cond * cond) -{ - int retval; - - if (!cond) { - return SDL_SetError("Passed a NULL condition variable"); - } - - retval = 0; - if (pthread_cond_broadcast(&cond->cond) != 0) { - return SDL_SetError("pthread_cond_broadcast() failed"); - } - return retval; -} - -int -SDL_CondWaitTimeout(SDL_cond * cond, SDL_mutex * mutex, Uint32 ms) -{ - int retval; -#ifndef HAVE_CLOCK_GETTIME - struct timeval delta; -#endif - struct timespec abstime; - - if (!cond) { - return SDL_SetError("Passed a NULL condition variable"); - } - -#ifdef HAVE_CLOCK_GETTIME - clock_gettime(CLOCK_REALTIME, &abstime); - - abstime.tv_nsec += (ms % 1000) * 1000000; - abstime.tv_sec += ms / 1000; -#else - gettimeofday(&delta, NULL); - - abstime.tv_sec = delta.tv_sec + (ms / 1000); - abstime.tv_nsec = (delta.tv_usec + (ms % 1000) * 1000) * 1000; -#endif - if (abstime.tv_nsec > 1000000000) { - abstime.tv_sec += 1; - abstime.tv_nsec -= 1000000000; - } - - tryagain: - retval = pthread_cond_timedwait(&cond->cond, &mutex->id, &abstime); - switch (retval) { - case EINTR: - goto tryagain; - break; - case ETIMEDOUT: - retval = SDL_MUTEX_TIMEDOUT; - break; - case 0: - break; - default: - retval = SDL_SetError("pthread_cond_timedwait() failed"); - } - return retval; -} - -/* Wait on the condition variable, unlocking the provided mutex. - The mutex must be locked before entering this function! - */ -int -SDL_CondWait(SDL_cond * cond, SDL_mutex * mutex) -{ - if (!cond) { - return SDL_SetError("Passed a NULL condition variable"); - } else if (pthread_cond_wait(&cond->cond, &mutex->id) != 0) { - return SDL_SetError("pthread_cond_wait() failed"); - } - return 0; -} - -/* vi: set ts=4 sw=4 expandtab: */ |