From c46ec9118a1fb8308fdd5b6785823f4de86c3e16 Mon Sep 17 00:00:00 2001 From: mainzelm Date: Fri, 9 Jan 2004 12:43:08 +0000 Subject: [PATCH] Add a notice to the description of the signal event system: interrupt handlers have to be disabled before using the event system. --- doc/scsh-manual/syscalls.tex | 1 + doc/scsh-manual/threads.tex | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/doc/scsh-manual/syscalls.tex b/doc/scsh-manual/syscalls.tex index 762735c..4e04951 100644 --- a/doc/scsh-manual/syscalls.tex +++ b/doc/scsh-manual/syscalls.tex @@ -2585,6 +2585,7 @@ or integer process ids. \end{desc} \subsubsection{Interrupt handlers} +\label{sec:int_handlers} Scsh interrupt handlers are complicated by the fact that scsh is implemented on top of the {\scm} virtual machine, which has its own interrupt system, independent of the Unix signal system. diff --git a/doc/scsh-manual/threads.tex b/doc/scsh-manual/threads.tex index 765d3f0..769134c 100644 --- a/doc/scsh-manual/threads.tex +++ b/doc/scsh-manual/threads.tex @@ -191,6 +191,15 @@ variable \texttt{state} by USR1 and USR2: (set! state #t) (lp next)))) \end{code} + +\textbf{Warning:} The current version of scsh also defines +asynchronous handlers for interrupts (See Section +\ref{sec:int_handlers}). The default action of some of these handlers +is to terminate the process in which case you will most likely not see +an effect of the synchronous event interface described here. It is +therefore recommended to disable the corresponding interrupt handler +using \texttt{(set-interrupt-handler interrupt \#f)}. + \section{Interaction between threads and process state} \label{sec:ps_interac} @@ -239,4 +248,7 @@ Therefore they remain global process state: If a thread changes one of these values, all other threads see the new value. Consequently, scsh does not provide \texttt{with-uid} and friends. - +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "man" +%%% End: