00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 #include "MutexImpl.h"
00021 
00022 #include "Utils.hpp"
00023 #include "C_Mutex.hpp"
00024 
00025 
00026 C_Mutex::C_Mutex() {
00027   ALLOC_VAR (m_impl, _pc_mutex, sizeof(_c_mutex)); 
00028   init () ;
00029 }
00030 
00031 C_Mutex::~C_Mutex() {
00032   destroy () ;
00033   FREE_VAR (m_impl) ;
00034 }
00035 
00036 void C_Mutex::init () {
00037 
00038   pthread_mutexattr_t L_mxAttr;
00039 
00040   pthread_mutexattr_init(&L_mxAttr);
00041   pthread_mutexattr_settype(&L_mxAttr, PTHREAD_MUTEX_NORMAL);
00042   pthread_mutex_init (MutexPt, &L_mxAttr) ;
00043 
00044 } 
00045 
00046 void C_Mutex::destroy () {
00047 
00048   pthread_mutex_destroy (MutexPt) ;
00049 
00050 } 
00051 
00052 void C_Mutex::unlock() {
00053 
00054   pthread_mutex_unlock (MutexPt);
00055 
00056 } 
00057 
00058 void C_Mutex::lock() {
00059 
00060   pthread_mutex_lock (MutexPt) ;
00061 
00062 }