From 3128281e50d30d12a053bc06018df4efcc8e988e Mon Sep 17 00:00:00 2001 From: crupest Date: Thu, 10 Jun 2021 11:12:25 +0800 Subject: ... --- operating-system-experiment/Thread.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'operating-system-experiment/Thread.cpp') diff --git a/operating-system-experiment/Thread.cpp b/operating-system-experiment/Thread.cpp index 9d9f5dd..7e3c784 100644 --- a/operating-system-experiment/Thread.cpp +++ b/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