From: Simone Piccardi Date: Fri, 19 Apr 2002 22:34:24 +0000 (+0000) Subject: Si prepara un esempio completo di sleep X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=commitdiff_plain;h=b88ba4d99196ec4fbe71335b3022f53f13cc289a;hp=fbb30fb7c5f7c81b50429ec82da2d0cb09f9e281 Si prepara un esempio completo di sleep --- diff --git a/signal.tex b/signal.tex index 540f0e2..df7197a 100644 --- a/signal.tex +++ b/signal.tex @@ -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 è: - \begin{prototype}{signal.h} {int sigsuspend(const sigset\_t *mask)} @@ -1995,6 +1994,14 @@ prototipo \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à.