00001
00012
00013
00014 #if !defined(__THREAD_H)
00015 #define __THREAD_H
00016
00017
00018 #include "common_header.h"
00019
00020
00021
00022 namespace Marsyas
00023 {
00024
00025 class Thread
00026 {
00027 public:
00029 Thread();
00030
00032 ~Thread();
00033
00035
00039 bool start( THREAD_FUNCTION routine, void * ptr = NULL );
00040
00042
00048 bool wait( long milliseconds = -1 );
00049
00051 static void test(void);
00052
00053 protected:
00054
00055 THREAD_HANDLE thread;
00056
00057 };
00058
00059 class Mutex
00060 {
00061 public:
00063 Mutex();
00064
00066 ~Mutex();
00067
00069 void lock(void);
00070
00072 void unlock(void);
00073
00074 protected:
00075
00076 MUTEX mutex;
00077
00078 };
00079
00080 }
00081
00082 #endif // defined(__THREAD_H)