Si prepara un esempio completo di sleep
authorSimone Piccardi <piccardi@gnulinux.it>
Fri, 19 Apr 2002 22:34:24 +0000 (22:34 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Fri, 19 Apr 2002 22:34:24 +0000 (22:34 +0000)
signal.tex

index 540f0e27601886fa18d1922c5f0c3da28b3fb45a..df7197a99cb6ec179365f6a9356b59291127bbcc 100644 (file)
@@ -1981,7 +1981,6 @@ quest'ultima. Per poter effettuare atomicamente la modifica della maschera dei
 segnali (di solito attivandone uno specifico) insieme alla sospensione del
 processo lo standard POSIX ha previsto la funzione \func{sigsuspend}, il cui
 prototipo è:
 segnali (di solito attivandone uno specifico) insieme alla sospensione del
 processo lo standard POSIX ha previsto la funzione \func{sigsuspend}, il cui
 prototipo è:
-
 \begin{prototype}{signal.h}
 {int sigsuspend(const sigset\_t *mask)} 
   
 \begin{prototype}{signal.h}
 {int sigsuspend(const sigset\_t *mask)} 
   
@@ -1995,6 +1994,14 @@ prototipo 
   \end{errlist}}
 \end{prototype}
 
   \end{errlist}}
 \end{prototype}
 
+Come esempio dell'uso di queste funzioni proviamo a riscrivere un'altra volta
+l'esempio di implementazione di \code{sleep}. Abbiamo accennato in
+\secref{sec:sig_sigaction} come con \func{sigaction} sia possibile bloccare
+\macro{SIGALRM} nell'installazione dei manipolatori degli altri segnali, per
+poter usare l'implementazione vista in \secref{fig:sig_sleep_incomplete} senza
+interferenze.  Questo però comporta una precauzione ulteriore al semplice uso
+della funzione, vediamo allora come usando la nuova interfaccia è possibile
+ottenere un'implementazione che non presenta neanche questa necessità.