summaryrefslogtreecommitdiff
path: root/Source/Core/Common/Src/Thread.cpp
diff options
context:
space:
mode:
authorhrydgard <hrydgard@gmail.com>2009-02-20 22:04:52 +0000
committerhrydgard <hrydgard@gmail.com>2009-02-20 22:04:52 +0000
commit6cd34b318fc46620ea85991dd1e03ea390960da3 (patch)
tree0a20c064660b03e8d440a517daa76c8707b7f514 /Source/Core/Common/Src/Thread.cpp
parentf992dae50ddbd7c20d63e6d48d5051fc1d6b392b (diff)
The Mega Change Of Doom - or, fixing Stop. Almost. At least it's better than before. However, the OpenGL plugin seems to lose textures a lot between game restarts :P I think the GL plugin needs to do a lot more cleanup.
This change also includes tons of minor code formatting cleanup. Yeah, should've separated it ... sorry :( Kills the old CPUCompare support. I'll resurrect it if I need it again, right now it mostly clutters the code. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2321 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/Common/Src/Thread.cpp')
-rw-r--r--Source/Core/Common/Src/Thread.cpp26
1 files changed, 10 insertions, 16 deletions
diff --git a/Source/Core/Common/Src/Thread.cpp b/Source/Core/Common/Src/Thread.cpp
index 28f59daecb..efc4815cb2 100644
--- a/Source/Core/Common/Src/Thread.cpp
+++ b/Source/Core/Common/Src/Thread.cpp
@@ -22,6 +22,12 @@
namespace Common
{
#ifdef _WIN32
+
+void InitThreading()
+{
+ // Nothing to do in Win32 build.
+}
+
CriticalSection::CriticalSection(int spincount)
{
if (spincount)
@@ -34,25 +40,21 @@ CriticalSection::CriticalSection(int spincount)
}
}
-
CriticalSection::~CriticalSection()
{
DeleteCriticalSection(&section);
}
-
void CriticalSection::Enter()
{
EnterCriticalSection(&section);
}
-
bool CriticalSection::TryEnter()
{
return TryEnterCriticalSection(&section) ? true : false;
}
-
void CriticalSection::Leave()
{
LeaveCriticalSection(&section);
@@ -71,13 +73,11 @@ Thread::Thread(ThreadFunc function, void* arg)
&m_threadId);
}
-
Thread::~Thread()
{
WaitForDeath();
}
-
void Thread::WaitForDeath()
{
if (m_hThread)
@@ -88,13 +88,11 @@ void Thread::WaitForDeath()
}
}
-
void Thread::SetAffinity(int mask)
{
SetThreadAffinityMask(m_hThread, mask);
}
-
void Thread::SetCurrentThreadAffinity(int mask)
{
SetThreadAffinityMask(GetCurrentThread(), mask);
@@ -106,32 +104,27 @@ Event::Event()
m_hEvent = 0;
}
-
void Event::Init()
{
m_hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
}
-
void Event::Shutdown()
{
CloseHandle(m_hEvent);
m_hEvent = 0;
}
-
void Event::Set()
{
SetEvent(m_hEvent);
}
-
void Event::Wait()
{
WaitForSingleObject(m_hEvent, INFINITE);
}
-
void SleepCurrentThread(int ms)
{
Sleep(ms);
@@ -304,12 +297,13 @@ void Thread::SetCurrentThreadAffinity(int mask)
void InitThreading() {
static int thread_init_done = 0;
- if (thread_init_done) return;
- thread_init_done++;
+ if (thread_init_done)
+ return;
if (pthread_key_create(&threadname_key, NULL/*free*/) != 0)
perror("Unable to create thread name key: ");
-
+
+ thread_init_done++;
}
void SleepCurrentThread(int ms)