FreeBSD Manual Pages
THR_WAKE(2) System Calls Manual THR_WAKE(2) NAME thr_wake -- wake up the suspended thread LIBRARY Standard C Library (libc, -lc) SYNOPSIS #include <sys/thr.h> int thr_wake(long id); DESCRIPTION This function is intended for implementing threading. Normal applica- tions 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. Passing the thread identifier of the calling thread (see thr_self(2)) to thr_wake() sets a thread's flag to cause the next signal-interrupt- ible sleep of that thread in the kernel to fail immediately with the EINTR error. The flag is cleared by an interruptible sleep attempt or by a call to thr_suspend(2). This is used by the system threading li- brary to implement cancellation. If id is not equal to the current thread identifier, the specified thread is woken up if suspended by the thr_suspend(2) system call. If the thread is not suspended at the time of the thr_wake call, the wake is remembered and the next attempt of the thread to suspend itself with the thr_suspend(2) results in immediate return with success. Only one wake is remembered. RETURN VALUES The thr_wake() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indi- cate the error. ERRORS The thr_wake() operation returns these errors: [ESRCH] The specified thread was not found or does not be- long to the process of the calling thread. SEE ALSO ps(1), thr_self(2), thr_suspend(2), pthread_cancel(3), pthread_resume_np(3), pthread_suspend_np(3) STANDARDS The thr_suspend() system call is non-standard and is used by 1:1 Threading Library (libthr, -lthr) to implement IEEE Std 1003.1-2001 ("POSIX.1") pthread(3) functionality. HISTORY The thr_suspend() system call first appeared in FreeBSD 5.2. FreeBSD 13.2 May 5, 2020 THR_WAKE(2)
NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SEE ALSO | STANDARDS | HISTORY
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=thr_wake&sektion=2&manpath=FreeBSD+14.2-RELEASE+and+Ports>