NANOSLEEP(2) | System Calls Manual | NANOSLEEP(2) |
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);
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.
If the clock_nanosleep() or the nanosleep() functions return due to the delivery of a signal, the value returned will be -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).
October 1, 2012 | NetBSD 6.99 |