From 99e2e923d0c77b02f3fb4ff648ea916954868606 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Fri, 28 Feb 2025 23:13:39 +0800 Subject: chore(store): move everything to store. --- works/life/operating-system-experiment/Thread.h | 83 ------------------------- 1 file changed, 83 deletions(-) delete mode 100644 works/life/operating-system-experiment/Thread.h (limited to 'works/life/operating-system-experiment/Thread.h') diff --git a/works/life/operating-system-experiment/Thread.h b/works/life/operating-system-experiment/Thread.h deleted file mode 100644 index 4ad1ef4..0000000 --- a/works/life/operating-system-experiment/Thread.h +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef HEADER_THREAD_H -#define HEADER_THREAD_H - -#include "Base.h" - -#ifdef CRU_WINDOWS -#include -#else -#include -#endif - -#ifdef __cplusplus - -#include -#include -#include -#include -#include -#include -#include - -namespace cru { -class CRU_API Thread { -public: - Thread() = default; - template Thread(Fn &&process, Args &&...args); - Thread(const Thread &other) = delete; - Thread(Thread &&other) noexcept; - Thread &operator=(const Thread &other) = delete; - Thread &operator=(Thread &&other) noexcept; - ~Thread(); - -public: - void Join(); - void Detach(); - -#ifdef CRU_WINDOWS - DWORD -#else - pthread_t -#endif - GetNativeID(); - -#ifdef CRU_WINDOWS - HANDLE -#else - pthread_t -#endif - GetNativeHandle(); - - void swap(Thread &other) noexcept; - -private: - void Destroy() noexcept; - void CreateThread(std::function *proc); - -private: - bool detached_ = false; - bool joined_ = false; - -#ifdef CRU_WINDOWS - DWORD thread_id_ = 0; - HANDLE thread_handle_ = nullptr; -#else - std::unique_ptr thread_; -#endif -}; - -template -Thread::Thread(Fn &&process, Args &&...args) { - std::tuple...> a{std::forward(args)...}; - auto p = new std::function( - [process = std::forward(process), args = std::move(a)]() { - std::apply(process, std::move(args)); - }); - - CreateThread(p); -}; -} // namespace cru - -#endif - -#endif -- cgit v1.2.3