diff options
Diffstat (limited to 'udelay.c')
-rw-r--r-- | udelay.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -22,6 +22,7 @@ #ifndef __LIBPAYLOAD__ #include <unistd.h> +#include <time.h> #include <sys/time.h> #include <stdlib.h> #include <limits.h> @@ -174,9 +175,11 @@ void internal_sleep(unsigned int usecs) { #if IS_WINDOWS Sleep((usecs + 999) / 1000); -#else +#elif defined(__DJGPP__) sleep(usecs / 1000000); usleep(usecs % 1000000); +#else + nanosleep(&(struct timespec){usecs / 1000000, (usecs * 1000) % 1000000000UL}, NULL); #endif } |