class AeSimpleMutex
{
public:
AeSimpleMutex();
~AeSimpleMutex();
void Lock( void );
void Unlock( void );
private:
#ifdef WIN32
CRITICAL_SECTION m_kCriticalSeciton;
#else
pThread_Mutex_t m_hMutext;
#endif
};
AeSimleMutex:: AeSimpleMutex()
{
#ifdef _WIN32
InitializeCriticalSection( & m_kCriticalSection );
#else
int error = pthread_mutex_init( &m_hMutex , 0 );
( void ) error ;
assert( error == 0 );
#endif
}
AeSimpleMutex::~AeSimpleMutex()
{
#ifdef _WIN32
DeleteCriticalSection( &m_kCriticalSection );
#else
pthread_mutex_destroy( & m_hMutex );
#endif
}
void AeSimpleMutex::Lock( void )
{
#ifdef _WIN32
EnterCriticalSection( & m_kCriticalSection );
#else
int error = pthread_mutex_lock( & m_hMutex );
( void ) error;
assert( error == 0 );
}
void AeSimpleMutex::Unlock( void )
{
#ifdef _WIN32
LeaveCriticalSection( & m_kCriticalSection );
#else
int error = pthread_mutex_unlock( & m_hMutex );
( void ) error;
assert( error == 0 );
#endif
}