Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OSF1-V5.1-alpha)
Apropos / Subsearch:
optional field

sigsuspend(2)							sigsuspend(2)

  sigsuspend - Atomically changes the set of blocked signals and waits for a


  Standard C Library (libc.so, libc.a)


  #include <&lt;signal.h>&gt;

  int sigsuspend (
	  const	sigset_t *signal_mask );


  Interfaces documented	on this	reference page conform to industry standards
  as follows:

  sigsuspend():	 XPG4, XPG4-UNIX

  Refer	to the standards(5) reference page for more information	about indus-
  try standards	and associated tags.


	    Points to a	set of signals.


  The sigsuspend() function replaces the signal	mask of	the process (or
  thread) with the set of signals pointed to by	the signal_mask	parameter,
  and then suspends execution of the caller until delivery of a	signal whose
  action is either to execute a	signal-catching	function or to terminate the
  process.  The	sigsuspend() function does not allow the SIGKILL or SIGSTOP
  signals to be	blocked.  If a program attempts	to block one of	these sig-
  nals,	the sigsuspend() function gives	no indication of the error; the	ille-
  gal request is simply	ignored.

  If delivery of a signal causes the process to	terminate, the sigsuspend()
  function does	not return. If delivery	of a signal causes a signal-catching
  function to execute, the sigsuspend()	function returns after the signal-
  catching function returns, with the signal mask restored to the set that
  existed prior	to the call to the sigsuspend()	function.

  The sigsuspend() function sets the signal mask and waits for an unblocked
  signal as one	atomic operation. This means that signals cannot occur
  between the operations of setting the	mask and waiting for a signal.	If a
  program invokes sigprocmask(SIG_SETMASK) and sigpause() separately, a	sig-
  nal that occurs between these	functions might	not be noticed by sigpause().

  In normal usage, a signal is blocked by using	the
  sigprocmask(SIG_BLOCK,...) or	pthread_sigmask(...) function at the begin-
  ning of a critical section. The process then determines whether there	is
  work for it to do. If	no work	is to be done, the process waits for work by
  calling the sigsuspend() function with the mask previously returned by the
  sigprocmask()	function.


  The sigpause() function is provided for compatibility	with older UNIX	sys-
  tems;	its function is	a subset of the	sigsuspend() function.


  Since	the sigsuspend() function suspends process execution indefinitely,
  there	is no successful completion return value.  If a	return occurs, -1 is
  returned and errno is	set to indicate	the error.


  The sigsuspend() function sets errno to the specified	values for the fol-
  lowing conditions:

  [EINTR]   A signal is	caught by the calling process and control is returned
	    from the signal-catching function.


  Functions: pause(3), sigaction(2), sigblock(2), sigprocmask(2), sigvec(2)

  Standards: standards(5)