summaryrefslogtreecommitdiff
path: root/src/threadengines/threadengine_win32.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2011-11-08 17:29:16 -0500
committerAdam <Adam@anope.org>2011-11-08 17:29:16 -0500
commitb5ff856f47d8e54d12c568462a06351633c29610 (patch)
treea4e2f96c59ee49aa5e6cacdfd30db6155151ad36 /src/threadengines/threadengine_win32.cpp
parent97b9055f92f21cd91af44a3d5dacce0024536cff (diff)
Windows
Diffstat (limited to 'src/threadengines/threadengine_win32.cpp')
-rw-r--r--src/threadengines/threadengine_win32.cpp108
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);
-}