+++ /dev/null
-#ifndef _included_thread
-#define _included_thread
-
-#ifdef TCL_THREADS
-#include <tcl.h>
-#define ThreadId Tcl_ThreadId
-#define tMutex Tcl_Mutex
-#define mutexInit(m) m = NULL
-#define mutexDestroy(m) Tcl_MutexFinalize(&m)
-#define mutexLock(m) (Tcl_MutexLock(&m), 0)
-#define mutexUnlock(m) (Tcl_MutexUnlock(&m), 0)
-#define threadCreate(p,fn,dt) Tcl_CreateThread(&p,v##fn,dt,TCL_THREAD_STACK_DEFAULT,0)
-#define threadKill(p)
-#else
-#include <pthread.h>
-#define ThreadId pthread_t
-#define tMutex pthread_mutex_t
-#define mutexInit(m) pthread_mutex_init(&m,0)
-#define mutexDestroy(m) pthread_mutex_destroy(&m)
-#define mutexLock(m) pthread_mutex_lock(&m)
-#define mutexUnlock(m) pthread_mutex_unlock(&m)
-#define threadCreate(p,fn,dt) pthread_create(&p,0,fn,dt)
-#define threadKill(p) pthread_kill(p,SIGQUIT)
-#endif
-
-class Thread
-{
-private:
- bool running;
- ThreadId p;
- tMutex mutex;
- static void *ThreadProc (void *);
- friend void vThreadProc (void *param) { ThreadProc(param); }
-public: Thread ():running (false)
- {
- mutexInit(mutex);
- }
- virtual ~ Thread ()
- {
- Kill ();
- mutexDestroy(mutex);
- }
- void Run ();
- void PostKill ()
- {
- running = false;
- }
- void Kill ();
- void Kill1();
- bool Running ()
- {
- return running;
- }
- virtual void Proc () = 0;
- void Lock() { mutexLock(mutex); }
- void Unlock() { mutexUnlock(mutex); }
-};
-
-#endif /* */