Inline lock_util functions

They are just tiny wrappers.
This commit is contained in:
Romain Vimont 2019-06-07 17:19:00 +02:00
parent e2a272bf99
commit 5d11339259
3 changed files with 39 additions and 63 deletions

View file

@ -10,7 +10,6 @@ src = [
'src/file_handler.c', 'src/file_handler.c',
'src/fps_counter.c', 'src/fps_counter.c',
'src/input_manager.c', 'src/input_manager.c',
'src/lock_util.c',
'src/net.c', 'src/net.c',
'src/receiver.c', 'src/receiver.c',
'src/recorder.c', 'src/recorder.c',

View file

@ -1,48 +0,0 @@
#include <lock_util.h>
#include <stdlib.h>
#include <SDL2/SDL_mutex.h>
#include "log.h"
void
mutex_lock(SDL_mutex *mutex) {
if (SDL_LockMutex(mutex)) {
LOGC("Could not lock mutex");
abort();
}
}
void
mutex_unlock(SDL_mutex *mutex) {
if (SDL_UnlockMutex(mutex)) {
LOGC("Could not unlock mutex");
abort();
}
}
void
cond_wait(SDL_cond *cond, SDL_mutex *mutex) {
if (SDL_CondWait(cond, mutex)) {
LOGC("Could not wait on condition");
abort();
}
}
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
cond_signal(SDL_cond *cond) {
if (SDL_CondSignal(cond)) {
LOGC("Could not signal a condition");
abort();
}
}

View file

@ -2,25 +2,50 @@
#define LOCKUTIL_H #define LOCKUTIL_H
#include <stdint.h> #include <stdint.h>
#include <SDL2/SDL_mutex.h>
// forward declarations #include "log.h"
typedef struct SDL_mutex SDL_mutex;
typedef struct SDL_cond SDL_cond;
void static inline void
mutex_lock(SDL_mutex *mutex); mutex_lock(SDL_mutex *mutex) {
if (SDL_LockMutex(mutex)) {
LOGC("Could not lock mutex");
abort();
}
}
void static inline void
mutex_unlock(SDL_mutex *mutex); mutex_unlock(SDL_mutex *mutex) {
if (SDL_UnlockMutex(mutex)) {
LOGC("Could not unlock mutex");
abort();
}
}
void static inline void
cond_wait(SDL_cond *cond, SDL_mutex *mutex); cond_wait(SDL_cond *cond, SDL_mutex *mutex) {
if (SDL_CondWait(cond, mutex)) {
LOGC("Could not wait on condition");
abort();
}
}
// return 0 or SDL_MUTEX_TIMEDOUT static inline int
int cond_wait_timeout(SDL_cond *cond, SDL_mutex *mutex, uint32_t ms) {
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 static inline void
cond_signal(SDL_cond *cond); cond_signal(SDL_cond *cond) {
if (SDL_CondSignal(cond)) {
LOGC("Could not signal a condition");
abort();
}
}
#endif #endif