52 lines
1 KiB
C++
52 lines
1 KiB
C++
/*
|
|
*
|
|
* REVISIONS:
|
|
* ane12Jan93: made Threadable an updateable object
|
|
* rct22Apr93: added new Start() method, added return types
|
|
* cad09Jul93: using new semaphores
|
|
*
|
|
*/
|
|
|
|
#ifndef __THREAD_H
|
|
#define __THREAD_H
|
|
|
|
#if (C_OS & C_NT)
|
|
#include <windows.h>
|
|
#endif
|
|
#include "thrdable.h"
|
|
|
|
|
|
_CLASSDEF(Thread)
|
|
|
|
class Thread {
|
|
|
|
private:
|
|
PThreadable theObject;
|
|
|
|
#if (C_OS & C_NT)
|
|
HANDLE theThreadHandle;
|
|
#endif
|
|
|
|
public:
|
|
Thread(PThreadable object) : theObject (object) {};
|
|
virtual ~Thread();
|
|
|
|
INT Start(); // Start thread with parent's context
|
|
INT Start(INT notUsed); // Start thread with it's own context
|
|
VOID RunMain();
|
|
INT Wait() { return theObject->Wait(); };
|
|
INT Release() { return theObject->Release(); };
|
|
INT Exit() { return theObject->Exit(); };
|
|
INT ExitWait() { return theObject->ExitWait(); };
|
|
INT Reset() { return theObject->Reset(); };
|
|
|
|
PThreadable GetThreadableObject();
|
|
|
|
#if (C_OS & C_NT)
|
|
VOID TerminateThreadNow();
|
|
#endif
|
|
|
|
};
|
|
|
|
#endif
|