00001 00005 #include "Mutex.hpp" 00006 #include "errorhandler.hpp" 00007 00008 // **************************************************************************** 00009 // ScopedLock 00010 // **************************************************************************** 00011 00012 // Konstruktor. 00013 // Lock sperren. 00014 ScopedLock::ScopedLock(Mutex* mutexPtr) 00015 { 00016 m_mutexPtr = mutexPtr; 00017 if (m_mutexPtr != NULL) 00018 { 00019 m_mutexPtr->lock(); 00020 } 00021 } 00022 00023 // Destruktor. 00024 // Lock wieder freigeben. 00025 ScopedLock::~ScopedLock() 00026 { 00027 if (m_mutexPtr != NULL) 00028 { 00029 m_mutexPtr->unlock(); 00030 } 00031 } 00032 00033 00034 00035 // **************************************************************************** 00036 // Mutex 00037 // **************************************************************************** 00038 Mutex::Mutex() 00039 { 00040 pthread_mutex_init (&m_mutex, NULL); 00041 } 00042 00043 Mutex::~Mutex() 00044 { 00045 } 00046 00047 void Mutex::lock() 00048 { 00049 pthread_mutex_lock(&m_mutex); 00050 } 00051 00052 void Mutex::unlock() 00053 { 00054 pthread_mutex_unlock(&m_mutex); 00055 }