ISXMr/libs/isxdk/include/Threading.h

50 lines
938 B
C++

#pragma once
#ifndef __THREADING_H__
#define __THREADING_H__
//#ifdef WIN32
#define THREAD DWORD
//typedef DWORD (*PTHREAD_START_ROUTINE)(LPVOID);
//#else
//#define THREAD void*
//typedef void* (*PTHREAD_START_ROUTINE)(void*);
//#endif
class CPortableSemaphore
{
//virtual void Initialize()=0;
};
class CPortableLock
{
public:
virtual void SetSemaphore(CPortableSemaphore*)=0;
virtual void Lock()=0;
virtual void Unlock()=0;
virtual bool IsLocked()=0;
};
class CPortableThread
{
public:
virtual bool BeginThread(LPTHREAD_START_ROUTINE function, void* pInfo, bool bWait)=0;
virtual void EndThread()=0;
virtual void AbortThread()=0;
bool bThreading;
bool CloseThread;
bool ThreadReady;
void *Info;
};
class CPortableSignal
{
public:
virtual void Wait(unsigned int Timeout, CPortableLock* unlockme=0)=0;
virtual void Wait(CPortableLock* unlockme=0)=0;
virtual void Release()=0;
virtual void Signal(bool*)=0;
};
#endif