mirror of
https://github.com/AquariaOSE/Aquaria.git
synced 2024-12-01 15:35:47 +00:00
dd7ab0448f
many many more to do but it's a little step closer to get rid of warnings
55 lines
704 B
C++
55 lines
704 B
C++
#include "MT.h"
|
|
#include <SDL.h>
|
|
|
|
|
|
// --------- Lockable ----------
|
|
|
|
Lockable::Lockable()
|
|
: _mtx(NULL)
|
|
{
|
|
_mtx = SDL_CreateMutex();
|
|
}
|
|
|
|
Lockable::~Lockable()
|
|
{
|
|
SDL_DestroyMutex((SDL_mutex*)_mtx);
|
|
}
|
|
|
|
void Lockable::lock()
|
|
{
|
|
SDL_LockMutex((SDL_mutex*)_mtx);
|
|
}
|
|
|
|
void Lockable::unlock()
|
|
{
|
|
SDL_UnlockMutex((SDL_mutex*)_mtx);
|
|
}
|
|
|
|
// --------- Waitable ----------
|
|
|
|
Waitable::Waitable()
|
|
: _cond(NULL)
|
|
{
|
|
_cond = SDL_CreateCond();
|
|
}
|
|
|
|
Waitable::~Waitable()
|
|
{
|
|
SDL_DestroyCond((SDL_cond*)_cond);
|
|
}
|
|
|
|
void Waitable::wait()
|
|
{
|
|
SDL_CondWait((SDL_cond*)_cond, (SDL_mutex*)mutex());
|
|
}
|
|
|
|
void Waitable::signal()
|
|
{
|
|
SDL_CondSignal((SDL_cond*)_cond);
|
|
}
|
|
|
|
void Waitable::broadcast()
|
|
{
|
|
SDL_CondBroadcast((SDL_cond*)_cond);
|
|
}
|
|
|