45 #ifndef CLIPPER_THREAD
46 #define CLIPPER_THREAD
49 #include "clipper_message.h"
50 #include "clipper_sysdep.h"
57 #ifndef CLIPPER_DISABLE_THREADS
67 Mutex() { CLIPPER_MUTEX_INIT( &mutex ); }
69 ~Mutex() { CLIPPER_MUTEX_FREE( &mutex ); }
71 inline void lock() { CLIPPER_MUTEX_LOCK( &mutex ); }
73 inline void unlock() { CLIPPER_MUTEX_UNLK( &mutex ); }
75 CLIPPER_MUTEX_TYPE mutex;
117 static void lock() { mutex_global.
lock(); }
118 static void unlock() { mutex_global.
unlock(); }
119 int id()
const {
return id_; }
122 virtual void Run() = 0;
125 static CLIPPER_THREAD_RETTYPE Entry( CLIPPER_THREAD_ARGTYPE thisptr );
126 static Mutex mutex_global;
128 CLIPPER_THREAD_TYPE thread;
140 inline void lock() {}
147 virtual ~Thread_base() {}
148 bool run() { Run();
return true; }
149 bool join() {
return true; }
150 static void lock() {}
151 static void unlock() {}
152 int id()
const {
return -1; }
Fatal message (level = 9)
Definition: clipper_message.h:129
Mutex()
constructor: create the mutex
Definition: clipper_thread.h:67
~Mutex()
destructor: destroy the mutex
Definition: clipper_thread.h:69
void lock()
lock the mutex
Definition: clipper_thread.h:71
Thread base class: Override this to create new threads.
Definition: clipper_thread.h:111
Mutex class: used for locking and unlocking shared resources.
Definition: clipper_thread.h:64
static void message(const T &message)
pass a message
Definition: clipper_message.h:93
void unlock()
unlock the mutex
Definition: clipper_thread.h:73