GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
THR_SUSPEND(2) FreeBSD System Calls Manual THR_SUSPEND(2)

thr_suspend
suspend the calling thread

Standard C Library (libc, -lc)

#include <sys/thr.h>

int
thr_suspend(struct timespec *timeout);

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.

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.

The thr_suspend() operation returns the following errors:
[]
The memory pointed to by the timeout argument is not valid.
[]
The specified timeout expired.
[]
The timeout argument specified a zero time interval.
[]
The sleep was interrupted by a signal.

ps(1), thr_wake(2), pthread_resume_np(3), pthread_suspend_np(3)

The thr_suspend() system call is non-standard.

The thr_suspend() system call first appeared in FreeBSD 5.2.
May 5, 2020 FreeBSD 13.1-RELEASE

Search for    or go to Top of page |  Section 2 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.