From 00e6cc3a6caa27cca752709eea0f8aa60f1d74ee Mon Sep 17 00:00:00 2001 From: Jack Reacher Date: Sat, 6 Feb 2016 02:45:10 -0500 Subject: [PATCH] Added support for interuptable windows sleep --- hydra-time.c | 20 ++++++++++++++++---- hydra.h | 12 +++++++++++- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/hydra-time.c b/hydra-time.c index cd85481..42244e1 100644 --- a/hydra-time.c +++ b/hydra-time.c @@ -1,8 +1,7 @@ - -#include - #include "hydra.h" +#ifndef _WIN32 +#include int sleepn(time_t seconds) { struct timespec ts; @@ -10,10 +9,23 @@ int sleepn(time_t seconds) ts.tv_nsec = 0; return nanosleep(&ts, NULL); } - int usleepn(long int milisec) { struct timespec ts; ts.tv_sec = milisec / 1000; ts.tv_nsec = (milisec % 1000) * 1000000L; return nanosleep(&ts, NULL); } +#endif + +#ifdef _WIN32 +#include +int sleepn(unsigned int seconds) +{ + return SleepEx(milisec*1000,TRUE); +} + +int usleepn(unsigned int milisec) +{ + return SleepEx(milisec,TRUE); +} +#endif diff --git a/hydra.h b/hydra.h index 1133402..0b5bd18 100644 --- a/hydra.h +++ b/hydra.h @@ -132,9 +132,19 @@ #define INET_ADDRSTRLEN 16 #endif -int sleepn(time_t seconds); +#ifndef _WIN32 +int sleepn(time_t seconds); int usleepn(long int useconds); +#endif + +#ifdef _WIN32 + +int sleepn(unsigned int seconds); +int usleepn(unsigned int useconds); + +#endif + #define _HYDRA_H #endif