Add cond_wait_timeout()
Add a "timed out" version of cond_wait().
This commit is contained in:
parent
eda44b6068
commit
d104d3bda9
2 changed files with 16 additions and 0 deletions
|
@ -28,6 +28,16 @@ cond_wait(SDL_cond *cond, SDL_mutex *mutex) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
cond_wait_timeout(SDL_cond *cond, SDL_mutex *mutex, uint32_t ms) {
|
||||||
|
int r = SDL_CondWaitTimeout(cond, mutex, ms);
|
||||||
|
if (r < 0) {
|
||||||
|
LOGC("Could not wait on condition with timeout");
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
cond_signal(SDL_cond *cond) {
|
cond_signal(SDL_cond *cond) {
|
||||||
if (SDL_CondSignal(cond)) {
|
if (SDL_CondSignal(cond)) {
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
#ifndef LOCKUTIL_H
|
#ifndef LOCKUTIL_H
|
||||||
#define LOCKUTIL_H
|
#define LOCKUTIL_H
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
// forward declarations
|
// forward declarations
|
||||||
typedef struct SDL_mutex SDL_mutex;
|
typedef struct SDL_mutex SDL_mutex;
|
||||||
typedef struct SDL_cond SDL_cond;
|
typedef struct SDL_cond SDL_cond;
|
||||||
|
@ -14,6 +16,10 @@ mutex_unlock(SDL_mutex *mutex);
|
||||||
void
|
void
|
||||||
cond_wait(SDL_cond *cond, SDL_mutex *mutex);
|
cond_wait(SDL_cond *cond, SDL_mutex *mutex);
|
||||||
|
|
||||||
|
// return 0 or SDL_MUTEX_TIMEDOUT
|
||||||
|
int
|
||||||
|
cond_wait_timeout(SDL_cond *cond, SDL_mutex *mutex, uint32_t ms);
|
||||||
|
|
||||||
void
|
void
|
||||||
cond_signal(SDL_cond *cond);
|
cond_signal(SDL_cond *cond);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue