-Le modalità di utilizzo di \textit{epoll} prevedano che si definisca un
-insieme di file descriptor da tenere sotto controllo su un \textit{epoll
- descriptor} \param{epfd} con una serie di chiamate a
-\const{EPOLL\_CTL\_ADD}. Il default prevede la notifica in modalità
-\textit{level triggered}, a meno che sul file descriptor non si sia impostata
-la modalità \textit{edge triggered} con \const{EPOLLET}. Si tenga presente
-che è possibile tenere sotto osservazione uno stesso file descriptor su due
-\textit{epoll descriptor} diversi, ed entrambi riceveranno le notifiche, ma la
-pratica è sconsigliata.
-
-Una particolare modalità di notifica è quella impostata con
-\const{EPOLLONESHOT}: quando si è in modalità \textit{edge triggered} l'arrivo
-in rapida successione di dati in blocchi separati causa la generazione di una
-serie di eventi multipli; in questo caso si può utilizzare la modalità
-\textit{one-shot} in cui la notifica viene effettuata solo la prima volta,
-dopo di che il file descriptor osservato, pur restando nella lista di
-\param{epfd}, viene disattivato, e per essere riutilizzato dovrà essere
-riabilitato con una successiva chiamata con \const{EPOLL\_CTL\_MOD}.
-
-
-Infine qualora un file descriptor posto sotto osservazione dovesse essere
-chiuso, esso sarà automaticamente eliminato dall'insieme dei file descriptor
-osservati.
-
-
-
-
-La funzione che consente di attendere è \funcd{epoll\_wait}, il cui prototipo
-è:
+Le modalità di utilizzo di \textit{epoll} prevedano che si definisca qual'è
+l'insieme dei file descriptor da tenere sotto controllo tramite un certo
+\textit{epoll descriptor} \param{epfd} attraverso una serie di chiamate a
+\const{EPOLL\_CTL\_ADD}.\footnote{un difetto dell'interfaccia è che queste
+ chiamate devono essere ripetute per ciascun file descriptor, incorrendo in
+ una perdita di prestazioni qualora il numero di file descriptor sia molto
+ grande; per questo è stato proposto di introdurre come estensione una
+ funzione \func{epoll\_ctlv} che consenta di effettuare con una sola chiamata
+ le impostazioni per un blocco di file descriptor.} L'uso di
+\const{EPOLL\_CTL\_MOD} consente in seguito di modificare le modalità di
+osservazione di un file descriptor che sia già stato aggiunto alla lista di
+osservazione.
+
+Le impostazioni di default prevedono che la notifica degli eventi richiesti
+sia effettuata in modalità \textit{level triggered}, a meno che sul file
+descriptor non si sia impostata la modalità \textit{edge triggered},
+registrandolo con \const{EPOLLET} attivo nel campo \var{events}. Si tenga
+presente che è possibile tenere sotto osservazione uno stesso file descriptor
+su due \textit{epoll descriptor} diversi, ed entrambi riceveranno le
+notifiche, anche se questa pratica è sconsigliata.
+
+Qualora non si abbia più interesse nell'osservazione di un file descriptor lo
+si può rimuovere dalla lista associata a \param{epfd} con
+\const{EPOLL\_CTL\_DEL}; si tenga conto inoltre che i file descriptor sotto
+osservazione che vengono chiusi sono eliminati dalla lista automaticamente e
+non è necessario usare \const{EPOLL\_CTL\_DEL}.
+
+Infine una particolare modalità di notifica è quella impostata con
+\const{EPOLLONESHOT}: a causa dell'implementazione di \textit{epoll} infatti
+quando si è in modalità \textit{edge triggered} l'arrivo in rapida successione
+di dati in blocchi separati\footnote{questo è tipico con i socket di rete, in
+ quanto i dati arrivano a pacchetti.} può causare una generazione di eventi
+(ad esempio segnalazioni di dati in lettura disponibili) anche se la
+condizione è già stata rilevata.\footnote{si avrebbe cioè una rottura della
+ logica \textit{edge triggered}.}
+
+Anche se la situazione è facile da gestire, la si può evitare utilizzando
+\const{EPOLLONESHOT} per impostare la modalità \textit{one-shot}, in cui la
+notifica di un evento viene effettuata una sola volta, dopo di che il file
+descriptor osservato, pur restando nella lista di osservazione, viene
+automaticamente disattivato,\footnote{la cosa avviene contestualmente al
+ ritorno di \func{epoll\_wait} a causa dell'evento in questione.} e per
+essere riutilizzato dovrà essere riabilitato esplicitamente con una successiva
+chiamata con \const{EPOLL\_CTL\_MOD}.
+
+Una volta impostato l'insieme di file descriptor che si vogliono osservare con
+i relativi eventi, la funzione che consente di attendere l'occorrenza di uno
+di tali eventi è \funcd{epoll\_wait}, il cui prototipo è: