mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
stopped thread handles from on win32
This commit is contained in:
parent
50b3eb2394
commit
9afbc31daf
2 changed files with 23 additions and 2 deletions
|
|
@ -91,7 +91,11 @@ void CriticalSection::exit() const throw()
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
WaitableEvent::WaitableEvent() throw()
|
WaitableEvent::WaitableEvent() throw()
|
||||||
|
#ifdef JUCE_DEBUG
|
||||||
|
: internal (CreateEvent (0, FALSE, FALSE, _T("Juce WaitableEvent")))
|
||||||
|
#else
|
||||||
: internal (CreateEvent (0, FALSE, FALSE, 0))
|
: internal (CreateEvent (0, FALSE, FALSE, 0))
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -125,10 +129,15 @@ static unsigned int __stdcall threadEntryProc (void* userData) throw()
|
||||||
|
|
||||||
juce_threadEntryPoint (userData);
|
juce_threadEntryPoint (userData);
|
||||||
|
|
||||||
_endthread();
|
_endthreadex(0);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void juce_CloseThreadHandle (void* handle) throw()
|
||||||
|
{
|
||||||
|
CloseHandle ((HANDLE) handle);
|
||||||
|
}
|
||||||
|
|
||||||
void* juce_createThread (void* userData) throw()
|
void* juce_createThread (void* userData) throw()
|
||||||
{
|
{
|
||||||
unsigned int threadId;
|
unsigned int threadId;
|
||||||
|
|
@ -217,7 +226,12 @@ static HANDLE sleepEvent = 0;
|
||||||
|
|
||||||
void juce_initialiseThreadEvents() throw()
|
void juce_initialiseThreadEvents() throw()
|
||||||
{
|
{
|
||||||
sleepEvent = CreateEvent (0, 0, 0, 0);
|
if (sleepEvent == 0)
|
||||||
|
#ifdef JUCE_DEBUG
|
||||||
|
sleepEvent = CreateEvent (0, 0, 0, _T("Juce Sleep Event"));
|
||||||
|
#else
|
||||||
|
sleepEvent = CreateEvent (0, 0, 0, 0);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void Thread::yield() throw()
|
void Thread::yield() throw()
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,9 @@ void* juce_createThread (void* userData) throw();
|
||||||
void juce_killThread (void* handle) throw();
|
void juce_killThread (void* handle) throw();
|
||||||
void juce_setThreadPriority (void* handle, int priority) throw();
|
void juce_setThreadPriority (void* handle, int priority) throw();
|
||||||
void juce_setCurrentThreadName (const String& name) throw();
|
void juce_setCurrentThreadName (const String& name) throw();
|
||||||
|
#if JUCE_WIN32
|
||||||
|
void juce_CloseThreadHandle (void* handle) throw();
|
||||||
|
#endif
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
static VoidArray runningThreads (4);
|
static VoidArray runningThreads (4);
|
||||||
|
|
@ -78,6 +81,10 @@ void Thread::threadEntryPoint (Thread* const thread) throw()
|
||||||
runningThreads.removeValue (thread);
|
runningThreads.removeValue (thread);
|
||||||
runningThreadsLock.exit();
|
runningThreadsLock.exit();
|
||||||
|
|
||||||
|
#if JUCE_WIN32
|
||||||
|
juce_CloseThreadHandle (thread->threadHandle_);
|
||||||
|
#endif
|
||||||
|
|
||||||
thread->threadHandle_ = 0;
|
thread->threadHandle_ = 0;
|
||||||
thread->threadId_ = 0;
|
thread->threadId_ = 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue