From ef593ba2d445af515214d63bfd3942be9d673467 Mon Sep 17 00:00:00 2001 From: crupest Date: Thu, 10 Jun 2021 11:12:25 +0800 Subject: import(life): ... --- works/life/operating-system-experiment/Thread.cpp | 31 +++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'works/life/operating-system-experiment/Thread.cpp') diff --git a/works/life/operating-system-experiment/Thread.cpp b/works/life/operating-system-experiment/Thread.cpp index 9d9f5dd..7e3c784 100644 --- a/works/life/operating-system-experiment/Thread.cpp +++ b/works/life/operating-system-experiment/Thread.cpp @@ -59,6 +59,36 @@ void Thread::Detach() { detached_ = true; } +#ifdef CRU_WINDOWS +DWORD +#else +pthread_t +#endif +Thread::GetNativeID() { +#ifdef CRU_WINDOWS + assert(thread_handle_); + return thread_id_; +#else + assert(thread_); + return *thread_; +#endif +} + +#ifdef CRU_WINDOWS +HANDLE +#else +pthread_t +#endif +Thread::GetNativeHandle() { +#ifdef CRU_WINDOWS + assert(thread_handle_); + return thread_handle_; +#else + assert(thread_); + return *thread_; +#endif +} + void Thread::swap(Thread &other) noexcept { #ifdef CRU_WINDOWS Thread temp = std::move(*this); @@ -81,6 +111,7 @@ void Thread::Destroy() noexcept { detached_ = false; joined_ = false; #ifdef CRU_WINDOWS + thread_id_ = 0; thread_handle_ = nullptr; #else thread_ = nullptr; -- cgit v1.2.3