X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=signal.tex;h=1a2f3d08f8a43bfcfbf66b482d00f2c210d98c90;hp=b766ea6464574de019317ab94fa0f1661d00b0b4;hb=b19105fc2dcf0dc62a64b093f155c0db8e8ad5a6;hpb=2fa7645d9be0ffb058c335de3f474892fe55af31 diff --git a/signal.tex b/signal.tex index b766ea6..1a2f3d0 100644 --- a/signal.tex +++ b/signal.tex @@ -84,6 +84,20 @@ attivo. In questo caso è possibile una situazione in cui i segnali possono essere perduti. Si consideri il seguente segmento di codice, in cui la prima operazione del manipolatore è quella di reinstallare se stesso: +\footnotesize +\begin{lstlisting}[labelstep=0,frame=,indent=1cm]{} + int sig_handler(); /* handler function */ + ... + signal(SIGINT, sig_handler); /* establish handler */ + ... + +int sig_handler() +{ + signal(SIGINT, sig_handler); /* restablish handler */ + ... /* process signal */ +} +\end{lstlisting} +\normalsize se un secondo segnale arriva prima che il manipolatore invocato dal primo abbia eseguito la reinstallazione di se stesso il segnale può essere perso o causare il comportamento originale assegnato al segnale (in genere la