summaryrefslogtreecommitdiffstats
path: root/Doc/lib/libsignal.tex
diff options
context:
space:
mode:
authorMichael W. Hudson <mwh@python.net>2002-05-27 15:08:24 (GMT)
committerMichael W. Hudson <mwh@python.net>2002-05-27 15:08:24 (GMT)
commit34f20eac987b1ca006ebdfe5531a6931243294fb (patch)
treec1ffdc5009d7b8f4720dd035a98e2e9af46141c7 /Doc/lib/libsignal.tex
parente5df1058f12b254bb0958ed7ebf788c0eb6fa332 (diff)
downloadcpython-34f20eac987b1ca006ebdfe5531a6931243294fb.zip
cpython-34f20eac987b1ca006ebdfe5531a6931243294fb.tar.gz
cpython-34f20eac987b1ca006ebdfe5531a6931243294fb.tar.bz2
This is patch
[ 559250 ] more POSIX signal stuff Adds support (and docs and tests and autoconfery) for posix signal mask handling -- sigpending, sigprocmask and sigsuspend.
Diffstat (limited to 'Doc/lib/libsignal.tex')
-rw-r--r--Doc/lib/libsignal.tex54
1 files changed, 50 insertions, 4 deletions
diff --git a/Doc/lib/libsignal.tex b/Doc/lib/libsignal.tex
index e3aa171..3029385 100644
--- a/Doc/lib/libsignal.tex
+++ b/Doc/lib/libsignal.tex
@@ -18,10 +18,6 @@ the handler for \constant{SIGCHLD}, which follows the underlying
implementation.
\item
-There is no way to ``block'' signals temporarily from critical
-sections (since this is not supported by all \UNIX{} flavors).
-
-\item
Although Python signal handlers are called asynchronously as far as
the Python user is concerned, they can only occur between the
``atomic'' instructions of the Python interpreter. This means that
@@ -92,6 +88,16 @@ The variables defined in the \module{signal} module are:
One more than the number of the highest signal number.
\end{datadesc}
+\begin{datadesc}{SIG_BLOCK}
+\end{datadesc}
+\begin{datadesc}{SIG_UNBLOCK}
+\end{datadesc}
+\begin{datadesc}{SIG_SETMASK}
+ These constants are for use as the first parameter of the
+ \function{sigprocmask} function described below.
+\end{datadesc}
+
+
The \module{signal} module defines the following functions:
\begin{funcdesc}{alarm}{time}
@@ -144,6 +150,46 @@ The \module{signal} module defines the following functions:
\obindex{frame}
\end{funcdesc}
+The following functions are supported if your platform does. Most
+modern \UNIX-alikes now do.
+
+\begin{funcdesc}{sigpending}{}
+ Return the set of pending signals, i.e. a list containing the
+ numbers of those signals that have been raised while blocked.
+ \versionadded{2.3}
+\end{funcdesc}
+
+\begin{funcdesc}{sigprocmask}{how, sigset}
+ Change the list of currently blocked signals. The parameter
+ \var{how} should be one of \constant{SIG_BLOCK},
+ \constant{SIG_UNBLOCK} or \constant{SIG_SETMASK} and \var{sigset}
+ should be a sequence of signal numbers. The behaviour of the call
+ depends on the value of \var{how}:
+
+ \begin{tableii}{l|l}{textrm}{Value of \var{how}}{Behaviour of call}
+ \lineii{\constant{SIG_BLOCK}}
+ {The set of blocked signals is the union of the current set
+ and \var{sigset}.}
+ \lineii{\constant{SIG_UNBLOCK}}
+ {The signals in \var{sigset} are removed from the current
+ set of blocked signals. It is legal to attempt to unblock
+ a signal which is not blocked.}
+ \lineii{\constant{SIG_SETMASK}}
+ {The set of blocked signals is set to the \var{sigset}.}
+ \end{tableii}
+
+ A list contating the numbers of the previously blocked signals is
+ returned.
+ \versionadded{2.3}
+\end{funcdesc}
+
+\begin{funcdesc}{sigsuspend}{sigset}
+ Temporarily replace the signal mask with \var{sigset} (which should
+ be a sequnce of signal numbers) and suspend the process until a
+ signal is received.
+ \versionadded{2.3}
+\end{funcdesc}
+
\subsection{Example}
\nodename{Signal Example}