NAME
thr_suspend — suspend the calling threadLIBRARY
Standard C Library (libc, -lc)SYNOPSIS
#include <sys/thr.h> intthr_suspend(struct timespec *timeout);
DESCRIPTION
This function is
intended for implementing threading. Normal applications should use
pthread_cond_timedwait(3) together with
pthread_cond_broadcast(3) for typical safe
suspension with cooperation of the thread being suspended, or
pthread_suspend_np(3) and
pthread_resume_np(3) in some specific situations,
instead.
The thr_suspend() system call puts the calling
thread in a suspended state, where it is not eligible for CPU time. This state
is exited by another thread calling thr_wake(2),
when the time interval specified by timeout
has elapsed, or by the delivery of a signal to the suspended thread.
If the timeout argument is
NULL
, the suspended state can be only
terminated by explicit thr_wake() or signal.
If a wake from thr_wake(2) was delivered before the
thr_suspend call, the thread is not put into a
suspended state. Instead, the call returns immediately without an error.
If a thread previously called thr_wake(2) with its
own thread identifier, which resulted in setting the internal kernel flag to
immediately abort interruptible sleeps with an
EINTR
error (see
thr_wake(2)), the flag is cleared. As with
thr_wake(2) called from another thread, the next
thr_suspend call does not result in suspension.
RETURN VALUES
The thr_suspend() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.ERRORS
The thr_suspend() operation returns the following errors:- [
EFAULT
] - The memory pointed to by the timeout argument is not valid.
- [
ETIMEDOUT
] - The specified timeout expired.
- [
ETIMEDOUT
] - The timeout argument specified a zero time interval.
- [
EINTR
] - The sleep was interrupted by a signal.
SEE ALSO
ps(1), thr_wake(2), pthread_resume_np(3), pthread_suspend_np(3)STANDARDS
The thr_suspend() system call is non-standard.September 23, 2016 | Debian |