2020-05-15 19:07:27 +08:00
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
// Copyright (C) 2010 iZsh <izsh at fail0verflow.com>
|
|
|
|
//
|
|
|
|
// This code is licensed to you under the terms of the GNU GPL, version 2 or,
|
|
|
|
// at your option, any later version. See the LICENSE.txt file for the text of
|
|
|
|
// the license.
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
// platform-independant sleep macros
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
#ifndef _WIN32
|
|
|
|
|
2020-10-07 02:44:23 +08:00
|
|
|
#define _POSIX_C_SOURCE 199309L
|
2020-05-15 19:07:27 +08:00
|
|
|
#include "sleep.h"
|
|
|
|
#include <time.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <sys/time.h>
|
|
|
|
#include <errno.h>
|
|
|
|
|
|
|
|
void nsleep(uint64_t n) {
|
|
|
|
struct timespec timeout;
|
|
|
|
timeout.tv_sec = n / 1000000000;
|
|
|
|
timeout.tv_nsec = n % 1000000000;
|
|
|
|
while (nanosleep(&timeout, &timeout) && errno == EINTR);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif // _WIN32
|
|
|
|
|