Home   Information   Classes   Download   Usage   Mail List   Requirements   Links   FAQ   Tutorial


Mutex.h

00001 #ifndef STK_MUTEX_H
00002 #define STK_MUTEX_H
00003 
00004 #include "Stk.h"
00005 
00006 #if (defined(__OS_IRIX__) || defined(__OS_LINUX__) || defined(__OS_MACOSX__))
00007 
00008   #include <pthread.h>
00009   typedef pthread_mutex_t MUTEX;
00010   typedef pthread_cond_t CONDITION;
00011 
00012 #elif defined(__OS_WINDOWS__)
00013 
00014   #include <windows.h>
00015   #include <process.h>
00016   typedef CRITICAL_SECTION MUTEX;
00017   typedef HANDLE CONDITION;
00018 
00019 #endif
00020 
00021 namespace stk {
00022 
00023 /***************************************************/
00034 /***************************************************/
00035 
00036 class Mutex : public Stk
00037 {
00038  public:
00040   Mutex();
00041 
00043   ~Mutex();
00044 
00046   void lock(void);
00047 
00049   void unlock(void);
00050 
00052 
00056   void wait(void);
00057 
00059 
00063   void signal(void);
00064 
00065  protected:
00066 
00067   MUTEX mutex_;
00068   CONDITION condition_;
00069 
00070 };
00071 
00072 } // stk namespace
00073 
00074 #endif

The Synthesis ToolKit in C++ (STK)
©1995-2010 Perry R. Cook and Gary P. Scavone. All Rights Reserved.