created locks abstraction
[physics.git] / src / locks / Mutex.cpp
CommitLineData
3bccd1d7
PG
1/*
2 * Copyright (C) 2008 Patrik Gornicz, Gornicz_P (at) hotmail (dot) com.
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#include "Mutex.h"
19
20#include <SDL/SDL.h>
21
22Mutex::Mutex()
23 : m_pSDL_mutex(NULL)
24{
25
26}
27Mutex::~Mutex()
28{
29
30}
31
32void Mutex::init()
33{
34 m_pSDL_mutex = SDL_CreateMutex();
35}
36void Mutex::clean()
37{
38 SDL_DestroyMutex(m_pSDL_mutex);
39 m_pSDL_mutex = NULL;
40}
41
42bool Mutex::IsValid()
43{
44 return NULL != m_pSDL_mutex;
45}
46
47void Mutex::Lock()
48{
49 if(IsValid())
50 SDL_mutexP(m_pSDL_mutex);
51}
52void Mutex::Unlock()
53{
54 if(IsValid())
55 SDL_mutexV(m_pSDL_mutex);
56}