diff --git a/src/sleepms.c b/src/sleepms.c new file mode 100644 index 0000000..0de0fa2 --- /dev/null +++ b/src/sleepms.c @@ -0,0 +1,24 @@ +#include "sleepms.h" + +#ifdef WIN32 +#include +#elif _POSIX_C_SOURCE >= 199309L +#include // for nanosleep +#else +#include // for usleep +#endif + +void sleep_ms(int milliseconds){ // cross-platform sleep function +#ifdef WIN32 + Sleep(milliseconds); +#elif _POSIX_C_SOURCE >= 199309L + struct timespec ts; + ts.tv_sec = milliseconds / 1000; + ts.tv_nsec = (milliseconds % 1000) * 1000000; + nanosleep(&ts, NULL); +#else + if (milliseconds >= 1000) + sleep(milliseconds / 1000); + usleep((milliseconds % 1000) * 1000); +#endif +} \ No newline at end of file diff --git a/src/sleepms.h b/src/sleepms.h new file mode 100644 index 0000000..6f6b7e8 --- /dev/null +++ b/src/sleepms.h @@ -0,0 +1,6 @@ +#ifndef SLEEPMS_H +#define SLEEPMS_H + +void sleep_ms(int milliseconds); + +#endif // SLEEPMS_H \ No newline at end of file