| NANOSLEEP(2) | System Calls Manual | NANOSLEEP(2) | 
nanosleep, clock_nanosleep
  —
#include <time.h>
int
  
  clock_nanosleep(clockid_t
    clock_id, int
    flags, const struct
    timespec *rqtp, struct
    timespec *rmtp);
int
  
  nanosleep(const
    struct timespec *rqtp,
    struct timespec
  *rmtp);
TIMER_ABSTIME flag is not set in the
  flags argument, then
  clock_nanosleep() suspends execution of the calling
  thread until either the number of seconds and nanoseconds specified in the
  rqtp argument have elapsed using the clock in the
  clock_id argument, or a signal is delivered to the
  calling process and its action is to invoke a signal catching function or to
  terminate the process.
If the TIMER_ABSTIME flag is set in the
    flags argument, then
    clock_nanosleep() suspends execution of the calling
    thread until either the value of the clock specified in the
    clock_id argument reaches the value of the
    rqtp argument in seconds and nanoseconds, or a signal
    is delivered to the calling process and its action is to invoke a signal
    catching function or to terminate the process.
The suspension time may be longer than requested due to the scheduling of other activity by the system.
The nanosleep() function behaves like
    clock_nanosleep() with the
    clock_id argument equal to
    CLOCK_MONOTONIC and the flags
    argument having TIMER_ABSTIME not set.
The struct timespec is described in timespec(3). The clock_id specified is the time source, which is described in clock_gettime(2).
clock_nanosleep() or the
  nanosleep() functions return because the requested
  time has elapsed, the value returned will be zero.
If the clock_nanosleep() or the
    nanosleep() functions return due to the delivery of
    a signal, then clock_nanosleep() will return
    directly the error number, and nanosleep() will
    return -1, and the global variable errno will be set
    to indicate the interruption. If rmtp is
    non-NULL, the timespec structure it references is
    updated to contain the unslept amount (the request time minus the time
    actually slept), unless it is called from
    clock_nanosleep() with a flags
    argument of TIMER_ABSTIME. In that case, the
    rmtp argument is left unmodified.
nanosleep() function shall return -1 and set
  errno to the corresponding value, and the
  clock_nanosleep() function shall return the error
  number directly.
EFAULT]EINTR]nanosleep was interrupted by the delivery of a
      signal.EINVAL]ENOSYS]nanosleep is not supported by this
    implementation.ENOTSUP]clock_nanosleep(), the clock specified in the
      clock_id argument is not supported.nanosleep() function conforms to
  IEEE Std 1003.1b-1993 (“POSIX.1b”). The
  clock_nanosleep() function conforms to
  IEEE Std 1003.1-2008 (“POSIX.1”).
HZ which is
  by default 100 in most architectures. This means that
  a request to sleep for less than 10ms (1 /
  HZ seconds), is rounded up to that.
| November 11, 2016 | NetBSD 9.4 |