home | help
GETCONTEXT(3)		     Library Functions Manual		   GETCONTEXT(3)

NAME
     getcontext, setcontext -- get and set user thread context

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <ucontext.h>

     int
     getcontext(ucontext_t *ucp);

     int
     setcontext(const ucontext_t *ucp);

DESCRIPTION
     The  getcontext()	function saves the current thread's execution context in
     the structure pointed to by ucp.  This saved context may then later be  re-
     stored by calling setcontext().

     The  setcontext() function makes a previously saved thread context the cur-
     rent thread context, i.e., the current context  is  lost  and  setcontext()
     does  not return.	Instead, execution continues in the context specified by
     ucp, which must have been previously initialized by a call to getcontext(),
     makecontext(3), or by being passed as an argument to a signal handler  (see
     sigaction(2)).

     If  ucp was initialized by getcontext(), then execution continues as if the
     original getcontext() call had just returned (again).

     If ucp was initialized by makecontext(3), execution continues with the  in-
     vocation  of  the function specified to makecontext(3).  When that function
     returns, ucp->uc_link determines what  happens  next:  if	ucp->uc_link  is
     NULL,  the process exits; otherwise, setcontext(ucp->uc_link) is implicitly
     invoked.

     If ucp was initialized by the invocation of  a  signal  handler,  execution
     continues at the point the thread was interrupted by the signal.

RETURN VALUES
     If  successful, getcontext() returns zero and setcontext() does not return;
     otherwise -1 is returned.

ERRORS
     No errors are defined for getcontext() or setcontext().

SEE ALSO
     sigaction(2), sigaltstack(2), makecontext(3), ucontext(3)

FreeBSD 7.0		       September 10, 2002		   GETCONTEXT(3)

home | help