feat(process): add windows support to sleep function

This commit is contained in:
fallenoak 2023-03-03 12:54:27 -06:00 committed by GitHub
parent d817c41985
commit 3b5da1af9c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 6 deletions

View file

@ -20,6 +20,15 @@ set(CMAKE_CXX_STANDARD 11)
include(lib/system/cmake/system.cmake) 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(lib)
add_subdirectory(bc) add_subdirectory(bc)
add_subdirectory(test) add_subdirectory(test)

View file

@ -1,14 +1,20 @@
#include "bc/Process.hpp" #include "bc/Process.hpp"
#include <ctime>
void Blizzard::Process::Sleep(uint32_t duration) {
#if defined(WHOA_SYSTEM_WIN) #if defined(WHOA_SYSTEM_WIN)
// TODO #include <windows.h>
#endif
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
#include <ctime>
#endif
void Blizzard::Process::Sleep(uint32_t durationMs) {
#if defined(WHOA_SYSTEM_WIN)
::Sleep(durationMs);
#elif defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX) #elif defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
struct timespec request; struct timespec request;
request.tv_sec = 0; request.tv_sec = 0;
request.tv_nsec = duration * 1000000; request.tv_nsec = durationMs * 1000000;
nanosleep(&request, nullptr); nanosleep(&request, nullptr);
#endif #endif

View file

@ -7,7 +7,7 @@ namespace Blizzard {
namespace Process { namespace Process {
// Functions // Functions
void Sleep(uint32_t duration); void Sleep(uint32_t durationMs);
} // namespace Process } // namespace Process
} // namespace Blizzard } // namespace Blizzard