si può eliminare un segnale dalla coda senza dover essere bloccati qualora
esso non sia presente.
-\itindbeg{thread}
-
L'uso di queste funzioni è principalmente associato alla gestione dei segnali
con i \textit{thread}. In genere esse vengono chiamate dal \textit{thread}
incaricato della gestione, che al ritorno della funzione esegue il codice che
\textit{thread}, compreso quello dedicato alla gestione, che potrebbe
riceverlo fra due chiamate successive.
-\itindend{thread}
-
\subsection{La gestione avanzata delle temporizzazioni}
\label{sec:sig_timer_adv}
escluderne l'avvenuto invio al momento della chiamata non significa nulla
rispetto a quanto potrebbe essere in un qualunque momento successivo.
-\itindbeg{stack}
-
Una delle caratteristiche di BSD, disponibile anche in Linux, è la possibilità
di usare uno \textit{stack} alternativo per i segnali; è cioè possibile fare
usare al sistema un altro \textit{stack} (invece di quello relativo al
conseguenze imprevedibili). Si ricordi infine che una chiamata ad una
funzione della famiglia \func{exec} cancella ogni \textit{stack} alternativo.
-\itindend{stack}
-
Abbiamo visto in fig.~\ref{fig:sig_sleep_incomplete} come si possa usare
\func{longjmp} per uscire da un gestore rientrando direttamente nel corpo
del programma, sappiamo però che nell'esecuzione di un gestore il segnale