#include "Threading/Thread.h" #include namespace XCEngine { namespace Threading { Thread::Thread() = default; Thread::~Thread() { if (m_thread.joinable()) { m_thread.join(); } } void Thread::Join() { if (m_thread.joinable()) { m_thread.join(); } } void Thread::Detach() { if (m_thread.joinable()) { m_thread.detach(); } } Thread::Id Thread::GetCurrentId() { auto threadId = std::this_thread::get_id(); return static_cast(std::hash{}(threadId)); } void Thread::Sleep(uint32_t milliseconds) { std::this_thread::sleep_for(std::chrono::milliseconds(milliseconds)); } void Thread::Yield() { std::this_thread::yield(); } } // namespace Threading } // namespace XCEngine