summaryrefslogtreecommitdiff
path: root/source/libs/asura-lib-utils/threading/thread_impl_win32.cpp
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-06-06 00:12:17 +0800
committerchai <chaifix@163.com>2019-06-06 00:12:17 +0800
commit8bfe54676f728076a92d802bb5d064e58265c8f2 (patch)
tree5d8ea1bd063f2d01dc979915db546449d68277bf /source/libs/asura-lib-utils/threading/thread_impl_win32.cpp
parent88b882ed0b432c6aff2063213e2f793a36dd25f7 (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.cpp76
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