mirror of
https://github.com/glest/glest-source.git
synced 2025-10-01 01:46:42 +02:00
initial version ( megaglest 3.2.3-beta3 )
This commit is contained in:
69
source/shared_lib/include/platform/win32/thread.h
Normal file
69
source/shared_lib/include/platform/win32/thread.h
Normal file
@@ -0,0 +1,69 @@
|
||||
// ==============================================================
|
||||
// This file is part of Glest Shared Library (www.glest.org)
|
||||
//
|
||||
// Copyright (C) 2001-2008 Marti<74>o Figueroa
|
||||
//
|
||||
// You can redistribute this code and/or modify it under
|
||||
// the terms of the GNU General Public License as published
|
||||
// by the Free Software Foundation; either version 2 of the
|
||||
// License, or (at your option) any later version
|
||||
// ==============================================================
|
||||
|
||||
#ifndef _SHARED_PLATFORM_THREAD_H_
|
||||
#define _SHARED_PLATFORM_THREAD_H_
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
// =====================================================
|
||||
// class Thread
|
||||
// =====================================================
|
||||
|
||||
namespace Shared{ namespace Platform{
|
||||
|
||||
typedef LPTHREAD_START_ROUTINE ThreadFunction;
|
||||
typedef DWORD ThreadId;
|
||||
|
||||
class Thread{
|
||||
public:
|
||||
enum Priority{
|
||||
pIdle= THREAD_PRIORITY_IDLE,
|
||||
pLow= THREAD_PRIORITY_BELOW_NORMAL,
|
||||
pNormal= THREAD_PRIORITY_NORMAL,
|
||||
pHigh= THREAD_PRIORITY_ABOVE_NORMAL,
|
||||
pRealTime= THREAD_PRIORITY_TIME_CRITICAL
|
||||
};
|
||||
|
||||
private:
|
||||
HANDLE threadHandle;
|
||||
static const ThreadId threadIdBase= 1000;
|
||||
static ThreadId nextThreadId;
|
||||
|
||||
public:
|
||||
void start();
|
||||
virtual void execute()=0;
|
||||
void setPriority(Thread::Priority threadPriority);
|
||||
void suspend();
|
||||
void resume();
|
||||
|
||||
private:
|
||||
static DWORD WINAPI beginExecution(void *param);
|
||||
};
|
||||
|
||||
// =====================================================
|
||||
// class Mutex
|
||||
// =====================================================
|
||||
|
||||
class Mutex{
|
||||
private:
|
||||
CRITICAL_SECTION mutex;
|
||||
|
||||
public:
|
||||
Mutex();
|
||||
~Mutex();
|
||||
void p();
|
||||
void v();
|
||||
};
|
||||
|
||||
}}//end namespace
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user