From 82b8b2cbf13b5cebd78d09d48bd4a4834016a468 Mon Sep 17 00:00:00 2001 From: Alexandre Janniaux Date: Fri, 4 Jan 2013 13:20:12 +0100 Subject: [PATCH] Add Posix pthread mutex support. Former-commit-id: 1a6c8002e3fc70e557f0798a1cc78c3d430b853a --- src/Nazara/Core/Posix/MutexImpl.cpp | 32 ++++++++++++++++++++++++++++ src/Nazara/Core/Posix/MutexImpl.hpp | 33 +++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 src/Nazara/Core/Posix/MutexImpl.cpp create mode 100644 src/Nazara/Core/Posix/MutexImpl.hpp diff --git a/src/Nazara/Core/Posix/MutexImpl.cpp b/src/Nazara/Core/Posix/MutexImpl.cpp new file mode 100644 index 000000000..1916eeb57 --- /dev/null +++ b/src/Nazara/Core/Posix/MutexImpl.cpp @@ -0,0 +1,32 @@ +// Copyright (C) 2012 Jérôme Leclercq +// This file is part of the "Nazara Engine - Core module" +// For conditions of distribution and use, see copyright notice in Config.hpp + +#include +#include + +NzMutexImpl::NzMutexImpl() +{ + + pthread_mutex_init(&m_pmutex, NULL); +} + +NzMutexImpl::~NzMutexImpl() +{ + pthread_mutex_ +} + +void NzMutexImpl::Lock() +{ + pthread_mutex_lock(&m_pmutex); +} + +bool NzMutexImpl::TryLock() +{ + pthread_mutex_trylock(&m_pmutex) == 0; +} + +void NzMutexImpl::Unlock() +{ + pthread_mutex_unlock(&m_pmutex); +} diff --git a/src/Nazara/Core/Posix/MutexImpl.hpp b/src/Nazara/Core/Posix/MutexImpl.hpp new file mode 100644 index 000000000..a3cdad284 --- /dev/null +++ b/src/Nazara/Core/Posix/MutexImpl.hpp @@ -0,0 +1,33 @@ +// Copyright (C) 2012 Jérôme Leclercq +// This file is part of the "Nazara Engine - Core module" +// For conditions of distribution and use, see copyright notice in Config.hpp + +/* + 04/01/2012 : alexandre.janniaux@gmail.com + Add pthread mutex implementation +*/ + +#pragma once + +#ifndef NAZARA_MUTEXIMPL_HPP +#define NAZARA_MUTEXIMPL_HPP + +#include + +class NzMutexImpl +{ + friend class NzConditionVariableImpl; + + public: + NzMutexImpl(); + ~NzMutexImpl(); + + void Lock(); + bool TryLock(); + void Unlock(); + + private: + pthread_mutex_t m_pmutex; +}; + +#endif // NAZARA_MUTEXIMPL_HPP