diff options
author | Adam <Adam@anope.org> | 2011-11-08 17:29:16 -0500 |
---|---|---|
committer | Adam <Adam@anope.org> | 2011-11-08 17:29:16 -0500 |
commit | b5ff856f47d8e54d12c568462a06351633c29610 (patch) | |
tree | a4e2f96c59ee49aa5e6cacdfd30db6155151ad36 /src/threadengines/threadengine_win32.cpp | |
parent | 97b9055f92f21cd91af44a3d5dacce0024536cff (diff) |
Windows
Diffstat (limited to 'src/threadengines/threadengine_win32.cpp')
-rw-r--r-- | src/threadengines/threadengine_win32.cpp | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/src/threadengines/threadengine_win32.cpp b/src/threadengines/threadengine_win32.cpp deleted file mode 100644 index 5b6739c52..000000000 --- a/src/threadengines/threadengine_win32.cpp +++ /dev/null @@ -1,108 +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(); - thread->SetExitState(); - return 0; -} - -/** Join to the thread, sets the exit state to true - */ -void Thread::Join() -{ - this->SetExitState(); - WaitForSingleObject(Handle, INFINITE); -} - -/** Exit the thread. Note that the thread still must be joined to free resources! - */ -void Thread::Exit() -{ - this->SetExitState(); - ExitThread(0); -} - -/** Launch the thread - */ -void Thread::Start() -{ - this->Handle = CreateThread(NULL, 0, entry_point, this, 0, NULL); - - if (!this->Handle) - { - this->SetFlag(SF_DEAD); - throw CoreException("Unable to create thread: " + Anope::LastError()); - } -} - -/** 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); -} - -/** Attempt to lock the mutex, will return true on success and false on fail - * Does not block - * @return true or false - */ -bool Mutex::TryLock() -{ - return TryEnterCriticalSection(&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); -} |