Provided by: freebsd-manpages_12.0-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)