diff options
Diffstat (limited to 'src/threadengine_win32.cpp')
-rw-r--r-- | src/threadengine_win32.cpp | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/src/threadengine_win32.cpp b/src/threadengine_win32.cpp deleted file mode 100644 index 54db9529a..000000000 --- a/src/threadengine_win32.cpp +++ /dev/null @@ -1,106 +0,0 @@ -#include "services.h" - -/** Entry point for the thread - * @param paramter A Thread* cast to a void* - */ -static DWORD WINAPI entry_point(void *parameter) -{ - Thread *thread = static_cast<Thread *>(parameter); - thread->Run(); - if (!thread->GetExitState()) - thread->Join(); - delete thread; - return 0; -} - -/** Threadengines constructor - */ -ThreadEngine::ThreadEngine() -{ -} - -/** Threadengines destructor - */ -ThreadEngine::~ThreadEngine() -{ -} - -/** Join to the thread, sets the exit state to true - */ -void Thread::Join() -{ - SetExitState(); - WaitForSingleObject(Handle, INFINITE); -} - -/** Start a new thread - * @param thread A pointer to a newley allocated thread - */ -void ThreadEngine::Start(Thread *thread) -{ - thread->Handle = CreateThread(NULL, 0, entry_point, thread, 0, NULL); - - if (!thread->Handle) - { - delete thread; - throw CoreException("Unable to create thread: " + std::string(dlerror())); - } -} - -/** Constructor - */ -Mutex::Mutex() -{ - InitializeCriticalSection(&mutex); -} - -/** Destructor - */ -Mutex::~Mutex() -{ - DeleteCriticalSection(&mutex); -} - -/** Attempt to lock the mutex, will hang until a lock can be achieved - */ -void Mutex::Lock() -{ - EnterCriticalSection(&mutex); -} - -/** Unlock the mutex, it must be locked first - */ -void Mutex::Unlock() -{ - LeaveCriticalSection(&mutex); -} - -/** Constructor - */ -Condition::Condition() : Mutex() -{ - cond = CreateEvent(NULL, false, false, NULL); -} - -/** Destructor - */ -Condition::~Condition() -{ - CloseHandle(cond); -} - -/** Called to wakeup the waiter - */ -void Condition::Wakeup() -{ - PulseEvent(cond); -} - -/** Called to wait for a Wakeup() call - */ -void Condition::Wait() -{ - LeaveCriticalSection(&mutex); - WaitForSingleObject(cond, INFINITE); - EnterCriticalSection(&mutex); -} |