21 #include "../../SDL_internal.h" 28 #include <condition_variable> 30 #include <system_error> 48 }
catch (std::system_error & ex) {
49 SDL_SetError(
"unable to create a C++ condition variable: code=%d; %s", ex.code(), ex.what());
51 }
catch (std::bad_alloc &) {
131 std::unique_lock<std::recursive_mutex> cpp_lock(mutex->
cpp_mutex, std::adopt_lock_t());
139 auto wait_result = cond->
cpp_cond.wait_for(
141 std::chrono::duration<Uint32, std::milli>(ms)
150 }
catch (std::system_error & ex) {
151 SDL_SetError(
"unable to wait on a C++ condition variable: code=%d; %s", ex.code(), ex.what());
int SDL_CondWait(SDL_cond *cond, SDL_mutex *mutex)
void SDL_DestroyCond(SDL_cond *cond)
std::recursive_mutex cpp_mutex
#define SDL_MUTEX_TIMEDOUT
int SDL_CondSignal(SDL_cond *cond)
int SDL_CondWaitTimeout(SDL_cond *cond, SDL_mutex *mutex, Uint32 ms)
SDL_cond * SDL_CreateCond(void)
#define SDL_MUTEX_MAXWAIT
#define SDL_OutOfMemory()
GLbitfield GLuint64 timeout
int SDL_CondBroadcast(SDL_cond *cond)
std::condition_variable_any cpp_cond