logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

thr_suspend — suspend the calling thread

Description

Thisfunctionisintendedforimplementingthreading.Normalapplicationsshouldusepthread_cond_timedwait(3) togetherwithpthread_cond_broadcast(3) fortypicalsafesuspensionwithcooperationofthethreadbeingsuspended,orpthread_suspend_np(3) andpthread_resume_np(3) insomespecificsituations,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.

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.

Library

Standard C Library (libc, -lc)

Name

thr_suspend — suspend the calling thread

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.

See Also

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

Standards

The thr_suspend() system call is non-standard. Debian September 23, 2016 THR_SUSPEND(2)

Synopsis

#include<sys/thr.h>intthr_suspend(structtimespec*timeout);

See Also