Home Information Classes Download Usage Mail List Requirements Links Tutorial
00001 /***************************************************/ 00012 /***************************************************/ 00013 00014 #if !defined(__THREAD_H) 00015 #define __THREAD_H 00016 00017 #include "Stk.h" 00018 00019 #if (defined(__OS_IRIX__) || defined(__OS_LINUX__) || defined(__OS_MACOSX__)) 00020 00021 #include <pthread.h> 00022 #define THREAD_TYPE 00023 typedef pthread_t THREAD_HANDLE; 00024 typedef void * THREAD_RETURN; 00025 typedef void * (*THREAD_FUNCTION)(void *); 00026 typedef pthread_mutex_t MUTEX; 00027 00028 #elif defined(__OS_WINDOWS__) 00029 00030 #include <windows.h> 00031 #include <process.h> 00032 #define THREAD_TYPE __stdcall 00033 typedef unsigned long THREAD_HANDLE; 00034 typedef unsigned THREAD_RETURN; 00035 typedef unsigned (__stdcall *THREAD_FUNCTION)(void *); 00036 typedef CRITICAL_SECTION MUTEX; 00037 00038 #endif 00039 00040 class Thread : public Stk 00041 { 00042 public: 00044 Thread(); 00045 00047 ~Thread(); 00048 00050 00054 bool start( THREAD_FUNCTION routine, void * ptr = NULL ); 00055 00057 00063 bool wait( long milliseconds = -1 ); 00064 00066 static void test(void); 00067 00068 protected: 00069 00070 THREAD_HANDLE thread; 00071 00072 }; 00073 00074 class Mutex : public Stk 00075 { 00076 public: 00078 Mutex(); 00079 00081 ~Mutex(); 00082 00084 void lock(void); 00085 00087 void unlock(void); 00088 00089 protected: 00090 00091 MUTEX mutex; 00092 00093 }; 00094 00095 #endif // defined(__THREAD_H)
The Synthesis ToolKit in C++ (STK) |
©1995-2004 Perry R. Cook and Gary P. Scavone. All Rights Reserved. |