X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=tcpsock.tex;h=5d0a01b23f05eb8c3a9319c4d43dfce1fd33cd4f;hp=fe2891fbe2bfad56cfed95caf30799e301c87eb2;hb=7b43a7843d483c826a6ed13224208c615a23c4d6;hpb=9b7af600ff0f73bc946c9d160c320667c7a91347 diff --git a/tcpsock.tex b/tcpsock.tex index fe2891f..5d0a01b 100644 --- a/tcpsock.tex +++ b/tcpsock.tex @@ -2039,17 +2039,17 @@ esaminato in sez.~\ref{sec:proc_termination}). In questo caso avremo l'invio del segnale \signal{SIGCHLD} al padre, ma dato che non si è installato un gestore e che l'azione predefinita per questo segnale è quella di essere ignorato, non avendo predisposto la ricezione dello stato di terminazione, -otterremo che il processo figlio entrerà nello stato di \itindex{zombie} -\textit{zombie} (si riveda quanto illustrato in sez.~\ref{sec:sig_sigchld}), -come risulterà ripetendo il comando \cmd{ps}: +otterremo che il processo figlio entrerà nello stato di \textit{zombie} (si +riveda quanto illustrato in sez.~\ref{sec:sig_sigchld}), come risulterà +ripetendo il comando \cmd{ps}: \begin{verbatim} 2356 pts/0 S 0:00 ./echod 2359 pts/0 Z 0:00 [echod ] \end{verbatim} -Dato che non è il caso di lasciare processi \itindex{zombie} \textit{zombie}, -occorrerà ricevere opportunamente lo stato di terminazione del processo (si -veda sez.~\ref{sec:proc_wait}), cosa che faremo utilizzando \signal{SIGCHLD} +Dato che non è il caso di lasciare processi \textit{zombie}, occorrerà +ricevere opportunamente lo stato di terminazione del processo (si veda +sez.~\ref{sec:proc_wait}), cosa che faremo utilizzando \signal{SIGCHLD} secondo quanto illustrato in sez.~\ref{sec:sig_sigchld}. Una prima modifica al nostro server è pertanto quella di inserire la gestione della terminazione dei processi figli attraverso l'uso di un gestore. Per questo useremo la funzione @@ -2070,9 +2070,9 @@ un errore di \errcode{EINTR}. Vediamo allora cosa comporta tutto questo nel nostro caso: quando si chiude il client, il processo figlio che gestisce la connessione terminerà, ed il padre, -per evitare la creazione di \itindex{zombie} \textit{zombie}, riceverà il -segnale \signal{SIGCHLD} eseguendo il relativo gestore. Al ritorno del gestore -però l'esecuzione nel padre ripartirà subito con il ritorno della funzione +per evitare la creazione di \textit{zombie}, riceverà il segnale +\signal{SIGCHLD} eseguendo il relativo gestore. Al ritorno del gestore però +l'esecuzione nel padre ripartirà subito con il ritorno della funzione \func{accept} (a meno di un caso fortuito in cui il segnale arriva durante l'esecuzione del programma in risposta ad una connessione) con un errore di \errcode{EINTR}. Non avendo previsto questa eventualità il programma considera