summaryrefslogtreecommitdiff
path: root/source/modules/asura-utils/threading/thread_impl_win32.cpp
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-08-02 20:51:00 +0800
committerchai <chaifix@163.com>2019-08-02 20:51:00 +0800
commitbad78945ceba425f6a80e3b8dca2414d592970eb (patch)
tree8bf7540766349c534bf9e5746b24fd7507ba034e /source/modules/asura-utils/threading/thread_impl_win32.cpp
parent99b90496765df21c5f377f42b9ed073ccb34c1fd (diff)
*修改文件名格式
Diffstat (limited to 'source/modules/asura-utils/threading/thread_impl_win32.cpp')
-rw-r--r--source/modules/asura-utils/threading/thread_impl_win32.cpp77
1 files changed, 0 insertions, 77 deletions
diff --git a/source/modules/asura-utils/threading/thread_impl_win32.cpp b/source/modules/asura-utils/threading/thread_impl_win32.cpp
deleted file mode 100644
index c876be9..0000000
--- a/source/modules/asura-utils/threading/thread_impl_win32.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-#include "thread_impl_win32.h"
-#include "thread.h"
-
-#include <iostream>
-
-#if ASURA_THREAD_WIN32
-
-namespace_begin(AsuraEngine)
-namespace_begin(Threading)
-
-static DWORD WINAPI _thread_win32_runner(LPVOID param)
-{
- Threadable* thread = (Threadable*)param;
- return thread->Process(); // β
-}
-
-ThreadImplWin32::ThreadImplWin32()
-{
-}
-
-ThreadImplWin32::~ThreadImplWin32()
-{
- if (!m_Handle) return;
- ::CloseHandle(m_Handle);
- m_Handle = 0;
-}
-
-bool ThreadImplWin32::Start(Threadable* thread, uint32 stacksize/*=0*/)
-{
- assert(!IsRunning());
- m_Handle = ::CreateThread(
- NULL
- , stacksize
- , _thread_win32_runner
- , thread
- , 0 /*е*/
- , NULL);
-
- return m_Handle;
-}
-
-void ThreadImplWin32::Join()
-{
- // ̵߳ȴ̷߳
- ::WaitForSingleObject(m_Handle, INFINITE);
-}
-
-void ThreadImplWin32::Kill()
-{
- ::TerminateThread(m_Handle, FALSE);
-}
-
-void ThreadImplWin32::Sleep(uint ms)
-{
- ::Sleep(ms);
-}
-
-bool ThreadImplWin32::IsRunning()
-{
- if (m_Handle) {
- DWORD exitCode = 0;
- // https://blog.csdn.net/yuanmeng567/article/details/19485719
- ::GetExitCodeThread(m_Handle, &exitCode);
- return exitCode == STILL_ACTIVE;
- }
- return false;
-}
-
-bool ThreadImplWin32::IsCurrent()
-{
- return m_Handle == ::GetCurrentThread();
-}
-
-namespace_end
-namespace_end
-
-#endif // ASURA_THREAD_WIN32 \ No newline at end of file