added everything
This commit is contained in:
67
engine/platform/platformThread.h
Executable file
67
engine/platform/platformThread.h
Executable file
@@ -0,0 +1,67 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
// Copyright (C) GarageGames.com, Inc.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#ifndef _PLATFORMTHREAD_H_
|
||||
#define _PLATFORMTHREAD_H_
|
||||
|
||||
#ifndef _TORQUE_TYPES_H_
|
||||
#include "platform/types.h"
|
||||
#endif
|
||||
|
||||
typedef void (*ThreadRunFunction)(S32);
|
||||
|
||||
class Thread
|
||||
{
|
||||
private:
|
||||
static U32 gMainThread;
|
||||
|
||||
protected:
|
||||
void * mData;
|
||||
|
||||
public:
|
||||
Thread(ThreadRunFunction func = 0, S32 arg = 0, bool start_thread = true);
|
||||
virtual ~Thread();
|
||||
|
||||
void start();
|
||||
bool join();
|
||||
|
||||
virtual void run(S32 arg = 0);
|
||||
|
||||
bool isAlive();
|
||||
|
||||
static U32 getCurrentThreadId();
|
||||
static bool compareThreads(U32 thread1, U32 thread2);
|
||||
|
||||
static U32 getMainThread();
|
||||
static void setMainThread();
|
||||
static bool isMainThread();
|
||||
};
|
||||
|
||||
class PlatformThreadStorage;
|
||||
|
||||
/// Platform independent per-thread storage class.
|
||||
class ThreadStorage
|
||||
{
|
||||
enum
|
||||
{
|
||||
PlatformThreadStorageStorageSize = 32,
|
||||
};
|
||||
|
||||
PlatformThreadStorage *mThreadStorage;
|
||||
U8 mStorage[PlatformThreadStorageStorageSize];
|
||||
public:
|
||||
/// ThreadStorage constructor.
|
||||
ThreadStorage();
|
||||
/// ThreadStorage destructor.
|
||||
~ThreadStorage();
|
||||
|
||||
/// returns the per-thread stored void pointer for this ThreadStorage. The default value is NULL.
|
||||
void *get();
|
||||
/// sets the per-thread stored void pointer for this ThreadStorage object.
|
||||
void set(void *data);
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user