Provided by: freebsd-manpages_12.2-1_all bug

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   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.

       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-interruptible 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 library 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 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 indicate the error.

ERRORS

       The thr_wake() operation returns these errors:

       [ESRCH]            The  specified  thread  was not found or does not belong 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.

Debian                                         September 23, 2016                                    THR_WAKE(2)