diff options
author | madmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2012-09-23 23:23:33 +0200 |
---|---|---|
committer | madmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2012-09-23 23:23:33 +0200 |
commit | 7abb5f7604bb9a0a716e89f3b27e330b016a38b9 (patch) | |
tree | 7ccaea302b953c239a0d60548b6f7bcaf72e6527 /source/cThread.cpp | |
parent | Source files cleanup: Removed unused cBlockToPickup (diff) | |
download | cuberite-7abb5f7604bb9a0a716e89f3b27e330b016a38b9.tar cuberite-7abb5f7604bb9a0a716e89f3b27e330b016a38b9.tar.gz cuberite-7abb5f7604bb9a0a716e89f3b27e330b016a38b9.tar.bz2 cuberite-7abb5f7604bb9a0a716e89f3b27e330b016a38b9.tar.lz cuberite-7abb5f7604bb9a0a716e89f3b27e330b016a38b9.tar.xz cuberite-7abb5f7604bb9a0a716e89f3b27e330b016a38b9.tar.zst cuberite-7abb5f7604bb9a0a716e89f3b27e330b016a38b9.zip |
Diffstat (limited to 'source/cThread.cpp')
-rw-r--r-- | source/cThread.cpp | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/source/cThread.cpp b/source/cThread.cpp deleted file mode 100644 index 3df75f0e7..000000000 --- a/source/cThread.cpp +++ /dev/null @@ -1,128 +0,0 @@ - -#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules - - - - - -// When in MSVC, the debugger provides "thread naming" by catching special exceptions. Interface here: -#ifdef _MSC_VER -// -// Usage: SetThreadName (-1, "MainThread"); -// -typedef struct tagTHREADNAME_INFO -{ - DWORD dwType; // must be 0x1000 - LPCSTR szName; // pointer to name (in user addr space) - DWORD dwThreadID; // thread ID (-1=caller thread) - DWORD dwFlags; // reserved for future use, must be zero -} THREADNAME_INFO; - -void SetThreadName( DWORD dwThreadID, LPCSTR szThreadName) -{ - THREADNAME_INFO info; - info.dwType = 0x1000; - info.szName = szThreadName; - info.dwThreadID = dwThreadID; - info.dwFlags = 0; - - __try - { - RaiseException( 0x406D1388, 0, sizeof(info)/sizeof(DWORD), (DWORD*)&info ); - } - __except(EXCEPTION_CONTINUE_EXECUTION) - { - } -} -#endif // _MSC_VER - - - - - -cThread::cThread( ThreadFunc a_ThreadFunction, void* a_Param, const char* a_ThreadName /* = 0 */ ) - : m_ThreadFunction( a_ThreadFunction ) - , m_Param( a_Param ) - , m_Event( new cEvent() ) - , m_StopEvent( 0 ) -{ - if( a_ThreadName ) - { - m_ThreadName.assign(a_ThreadName); - } -} - - - - - -cThread::~cThread() -{ - delete m_Event; - - if( m_StopEvent ) - { - m_StopEvent->Wait(); - delete m_StopEvent; - } -} - - - - - -void cThread::Start( bool a_bWaitOnDelete /* = true */ ) -{ - if( a_bWaitOnDelete ) - m_StopEvent = new cEvent(); - -#ifndef _WIN32 - pthread_t SndThread; - if( pthread_create( &SndThread, NULL, MyThread, this) ) - LOGERROR("ERROR: Could not create thread!"); -#else - DWORD ThreadID = 0; - HANDLE hThread = CreateThread( 0 // security - ,0 // stack size - , (LPTHREAD_START_ROUTINE) MyThread // function name - ,this // parameters - ,0 // flags - ,&ThreadID ); // thread id - CloseHandle( hThread ); - - #ifdef _MSC_VER - if (!m_ThreadName.empty()) - { - SetThreadName(ThreadID, m_ThreadName.c_str()); - } - #endif // _MSC_VER -#endif - - // Wait until thread has actually been created - m_Event->Wait(); -} - - - - - -#ifdef _WIN32 -unsigned long cThread::MyThread(void* a_Param ) -#else -void *cThread::MyThread( void *a_Param ) -#endif -{ - cThread* self = (cThread*)a_Param; - cEvent* StopEvent = self->m_StopEvent; - - ThreadFunc* ThreadFunction = self->m_ThreadFunction; - void* ThreadParam = self->m_Param; - - // Set event to let other thread know this thread has been created and it's safe to delete the cThread object - self->m_Event->Set(); - - ThreadFunction( ThreadParam ); - - if( StopEvent ) StopEvent->Set(); - return 0; -} |