Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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.0-RELEASE+and+Ports>

home | help