summaryrefslogtreecommitdiffstats
path: root/src/OSSupport/Thread.h
blob: 7ee352c827d9c6afb1275bd35ce63338161492d8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#pragma once

class cThread
{
public:
	typedef void (ThreadFunc)(void*);
	cThread( ThreadFunc a_ThreadFunction, void* a_Param, const char* a_ThreadName = 0);
	~cThread();

	void Start( bool a_bWaitOnDelete = true);
	void WaitForThread();
private:
	ThreadFunc* m_ThreadFunction;

#ifdef _WIN32
	static unsigned long MyThread(void* a_Param);
#else
	static void *MyThread( void *lpParam);
#endif

	void* m_Param;
	cEvent* m_Event;
	cEvent* m_StopEvent;

	AString m_ThreadName;
};