diff options
Diffstat (limited to 'src/libposixplz/millisleep.c')
| -rw-r--r-- | src/libposixplz/millisleep.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/libposixplz/millisleep.c b/src/libposixplz/millisleep.c new file mode 100644 index 0000000..e781f58 --- /dev/null +++ b/src/libposixplz/millisleep.c @@ -0,0 +1,12 @@ +/* ISC license. */ + +#include <time.h> + +#include <skalibs/posixplz.h> + +unsigned int millisleep (unsigned int msec) +{ + struct timespec ts = { .tv_sec = msec / 1000, .tv_nsec = (long)(msec % 1000) * 1000000U } ; + struct timespec tr ; + return nanosleep(&ts, &tr) == -1 ? 1000 * tr.tv_sec + tr.tv_nsec / 1000000U : 0 ; +} |
