From 3b5da1af9c37e08b19a46ac316d931955713641e Mon Sep 17 00:00:00 2001 From: fallenoak Date: Fri, 3 Mar 2023 12:54:27 -0600 Subject: [PATCH] feat(process): add windows support to sleep function --- CMakeLists.txt | 9 +++++++++ bc/Process.cpp | 16 +++++++++++----- bc/Process.hpp | 2 +- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dee0e54..156f875 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,6 +20,15 @@ set(CMAKE_CXX_STANDARD 11) include(lib/system/cmake/system.cmake) +# OS defines +if(WHOA_SYSTEM_WIN) + # Avoid win32 header hell + add_compile_definitions( + NOMINMAX + WIN32_LEAN_AND_MEAN + ) +endif() + add_subdirectory(lib) add_subdirectory(bc) add_subdirectory(test) diff --git a/bc/Process.cpp b/bc/Process.cpp index d0e707f..3a6c8d1 100644 --- a/bc/Process.cpp +++ b/bc/Process.cpp @@ -1,14 +1,20 @@ #include "bc/Process.hpp" -#include -void Blizzard::Process::Sleep(uint32_t duration) { #if defined(WHOA_SYSTEM_WIN) - // TODO +#include +#endif + +#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX) +#include +#endif + +void Blizzard::Process::Sleep(uint32_t durationMs) { +#if defined(WHOA_SYSTEM_WIN) + ::Sleep(durationMs); #elif defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX) struct timespec request; - request.tv_sec = 0; - request.tv_nsec = duration * 1000000; + request.tv_nsec = durationMs * 1000000; nanosleep(&request, nullptr); #endif diff --git a/bc/Process.hpp b/bc/Process.hpp index 6a176dc..de45a9a 100644 --- a/bc/Process.hpp +++ b/bc/Process.hpp @@ -7,7 +7,7 @@ namespace Blizzard { namespace Process { // Functions -void Sleep(uint32_t duration); +void Sleep(uint32_t durationMs); } // namespace Process } // namespace Blizzard