X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=signal.tex;h=df7197a99cb6ec179365f6a9356b59291127bbcc;hp=540f0e27601886fa18d1922c5f0c3da28b3fb45a;hb=b88ba4d99196ec4fbe71335b3022f53f13cc289a;hpb=fbb30fb7c5f7c81b50429ec82da2d0cb09f9e281 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à.