diff options
Diffstat (limited to 'source/libs/asura-lib-utils/threading/thread_impl_win32.cpp')
-rw-r--r-- | source/libs/asura-lib-utils/threading/thread_impl_win32.cpp | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/source/libs/asura-lib-utils/threading/thread_impl_win32.cpp b/source/libs/asura-lib-utils/threading/thread_impl_win32.cpp deleted file mode 100644 index 6871c2d..0000000 --- a/source/libs/asura-lib-utils/threading/thread_impl_win32.cpp +++ /dev/null @@ -1,76 +0,0 @@ -#include "thread_impl_win32.h" -#include "thread.h" - -#include <iostream> - -namespace AsuraEngine -{ - namespace Threading - { - - static DWORD WINAPI _thread_win32_runner(LPVOID param) - { - Thread* thread = (Thread*)param; - thread->Process(); - return 0; - } - - ThreadImplWin32::ThreadImplWin32() - { - } - - ThreadImplWin32::~ThreadImplWin32() - { - if (!mHandle) return; - ::CloseHandle(mHandle); - mHandle = 0; - } - - bool ThreadImplWin32::Start(Thread* thread, uint32 stacksize/*=0*/) - { - assert(!IsRunning()); - mHandle = ::CreateThread( - NULL - , stacksize - , _thread_win32_runner - , thread - , 0 /*е*/ - , NULL); - - return mHandle; - } - - void ThreadImplWin32::Join() - { - // ̵߳ȴ̷߳ - ::WaitForSingleObject(mHandle, INFINITE); - } - - void ThreadImplWin32::Kill() - { - ::TerminateThread(mHandle, FALSE); - } - - void ThreadImplWin32::Sleep(uint ms) - { - ::Sleep(ms); - } - - bool ThreadImplWin32::IsRunning() - { - if (mHandle) { - DWORD exitCode = 0; - // https://blog.csdn.net/yuanmeng567/article/details/19485719 - ::GetExitCodeThread(mHandle, &exitCode); - return exitCode == STILL_ACTIVE; - } - return false; - } - - bool ThreadImplWin32::IsCurrent() - { - return mHandle == ::GetCurrentThread(); - } - - } -}
\ No newline at end of file |