diff options
author | chai <chaifix@163.com> | 2019-06-06 00:12:17 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-06-06 00:12:17 +0800 |
commit | 8bfe54676f728076a92d802bb5d064e58265c8f2 (patch) | |
tree | 5d8ea1bd063f2d01dc979915db546449d68277bf /source/libs/asura-lib-utils/threading/thread_impl_win32.cpp | |
parent | 88b882ed0b432c6aff2063213e2f793a36dd25f7 (diff) |
-文件夹名
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 |