X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=fileadv.tex;h=8765038cac5200568b43bd32a80ea3f0dfd3d0c8;hp=2d3ce015b9acb4563d1d9b350f3fbec4937b1dd7;hb=da0899b61653d07d75c8df134906261f1afd2485;hpb=9aad56ecd71e4f36e09f001cdd30b2106beec5c4 diff --git a/fileadv.tex b/fileadv.tex index 2d3ce01..8765038 100644 --- a/fileadv.tex +++ b/fileadv.tex @@ -314,7 +314,7 @@ L'uso di \param{sigmask} race condition\footnote{in Linux però, non esistendo una system call apposita, la funzione è implementata nelle \acr{glibc} usando \func{select}, e la possibilità di una race condition resta.} quando si deve eseguire un test su -una variabile assegnata da un manipolatore sulla base dell'occorrenza di un +una variabile assegnata da un gestore sulla base dell'occorrenza di un segnale per decidere se lanciare \func{select}. Fra il test e l'esecuzione è presente una finestra in cui potrebbe arrivare il segnale che non sarebbe rilevato; la race condition diventa superabile disabilitando il segnale prima @@ -362,14 +362,14 @@ pi Linux però supporta le estensioni POSIX.1b dei segnali che permettono di superare il problema facendo ricorso alle informazioni aggiuntive restituite attraverso la struttura \struct{siginfo\_t}, utilizzando la forma estesa -\var{sa\_sigaction} del manipolatore (si riveda quanto illustrato in +\var{sa\_sigaction} del gestore (si riveda quanto illustrato in \secref{sec:sig_sigaction}). Per far questo però occorre utilizzare le funzionalità dei segnali real-time (vedi \secref{sec:sig_real_time}) impostando esplicitamente con il comando \const{F\_SETSIG} di \func{fcntl} un segnale real-time da inviare in caso di I/O asincrono (il segnale predefinito è \const{SIGIO}). In questo caso il -manipolatore tutte le volte che riceverà \const{SI\_SIGIO} come valore del +gestore tutte le volte che riceverà \const{SI\_SIGIO} come valore del campo \var{si\_code}\footnote{il valore resta \const{SI\_SIGIO} qualunque sia il segnale che si è associato all'I/O asincrono, ed indica appunto che il segnale è stato generato a causa di attività nell'I/O asincrono.} di @@ -495,7 +495,7 @@ che indica le modalit \item[\const{SIGEV\_NONE}] Non viene inviata nessuna notifica. \item[\const{SIGEV\_SIGNAL}] La notifica viene effettuata inviando al processo chiamante il segnale specificato nel campo \var{sigev\_signo}, se il - manipolatore è installato con \const{SA\_SIGINFO}, il gli verrà restituito + gestore è installato con \const{SA\_SIGINFO}, il gli verrà restituito il valore di \var{sigev\_value} in come valore del campo \var{si\_value} per \struct{siginfo\_t}. \item[\const{SIGEV\_THREAD}] La notifica viene effettuata creando un nuovo