projects
/
gapil.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Aggiunte TODO per kernel 4.16
[gapil.git]
/
signal.tex
diff --git
a/signal.tex
b/signal.tex
index 3c794a665bf623627a684907ad99f856a2d2551b..fdd2e6fb40c737cec525363089cea4d484ec1406 100644
(file)
--- a/
signal.tex
+++ b/
signal.tex
@@
-1,6
+1,6
@@
%% signal.tex
%%
%% signal.tex
%%
-%% Copyright (C) 2000-201
5
Simone Piccardi. Permission is granted to
+%% Copyright (C) 2000-201
8
Simone Piccardi. Permission is granted to
%% copy, distribute and/or modify this document under the terms of the GNU Free
%% Documentation License, Version 1.1 or any later version published by the
%% Free Software Foundation; with the Invariant Sections being "Un preambolo",
%% copy, distribute and/or modify this document under the terms of the GNU Free
%% Documentation License, Version 1.1 or any later version published by the
%% Free Software Foundation; with the Invariant Sections being "Un preambolo",
@@
-2824,7
+2824,7
@@
Secondo lo standard POSIX la profondità della coda è indicata dalla costante
\constd{SIGQUEUE\_MAX}, una della tante costanti di sistema definite dallo
standard POSIX che non abbiamo riportato esplicitamente in
sez.~\ref{sec:sys_limits}. Il suo valore minimo secondo lo standard,
\constd{SIGQUEUE\_MAX}, una della tante costanti di sistema definite dallo
standard POSIX che non abbiamo riportato esplicitamente in
sez.~\ref{sec:sys_limits}. Il suo valore minimo secondo lo standard,
-\
const
d{\_POSIX\_SIGQUEUE\_MAX}, è pari a 32. Nel caso di Linux la coda ha una
+\
macro
d{\_POSIX\_SIGQUEUE\_MAX}, è pari a 32. Nel caso di Linux la coda ha una
dimensione variabile; fino alla versione 2.6.7 c'era un limite massimo globale
che poteva essere impostato come parametro del kernel in
\sysctlfiled{kernel/rtsig-max} ed il valore predefinito era pari a 1024. A
dimensione variabile; fino alla versione 2.6.7 c'era un limite massimo globale
che poteva essere impostato come parametro del kernel in
\sysctlfiled{kernel/rtsig-max} ed il valore predefinito era pari a 1024. A
@@
-2911,8
+2911,6
@@
ci sono segnali pendenti la funzione ritornerà immediatamente, in questo modo
si può eliminare un segnale dalla coda senza dover essere bloccati qualora
esso non sia presente.
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
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
@@
-2924,8
+2922,6
@@
che venga eseguita l'azione predefinita, devono essere mascherati per tutti i
\textit{thread}, compreso quello dedicato alla gestione, che potrebbe
riceverlo fra due chiamate successive.
\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}
\subsection{La gestione avanzata delle temporizzazioni}
\label{sec:sig_timer_adv}
@@
-3047,6
+3043,12
@@
tab.~\ref{tab:sig_timer_clockid_types}.
\end{table}
\end{table}
+% TODO: dal 4.17 CLOCK_MONOTONIC e CLOCK_BOOTTIME sono identici vedi
+% https://lwn.net/Articles/751651/ e
+% https://git.kernel.org/linus/d6ed449afdb38f89a7b38ec50e367559e1b8f71f
+% change reverted, vedi: https://lwn.net/Articles/752757/
+
+
% NOTE: dal 3.0 anche i cosiddetti Posix Alarm Timers, con
% CLOCK_REALTIME_ALARM vedi http://lwn.net/Articles/429925/
% TODO: dal 3.10 anche CLOCK_TAI
% NOTE: dal 3.0 anche i cosiddetti Posix Alarm Timers, con
% CLOCK_REALTIME_ALARM vedi http://lwn.net/Articles/429925/
% TODO: dal 3.10 anche CLOCK_TAI
@@
-3559,7
+3561,7
@@
singolo (in gergo \textit{one shot}).
Infine, quando un timer non viene più utilizzato, lo si può cancellare,
rimuovendolo dal sistema e recuperando le relative risorse, effettuando in
Infine, quando un timer non viene più utilizzato, lo si può cancellare,
rimuovendolo dal sistema e recuperando le relative risorse, effettuando in
-sostanza l'operazione inversa rispetto a \func
d
{timer\_create}. Per questo
+sostanza l'operazione inversa rispetto a \func{timer\_create}. Per questo
compito lo standard prevede una apposita funzione di sistema,
\funcd{timer\_delete}, il cui prototipo è:
compito lo standard prevede una apposita funzione di sistema,
\funcd{timer\_delete}, il cui prototipo è:
@@
-3668,8
+3670,6
@@
dato che essa può solo assicurare che un segnale è stato inviato, dato che
escluderne l'avvenuto invio al momento della chiamata non significa nulla
rispetto a quanto potrebbe essere in un qualunque momento successivo.
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
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
@@
-3770,8
+3770,6
@@
si accresce automaticamente (ed infatti eccederne le dimensioni può portare a
conseguenze imprevedibili). Si ricordi infine che una chiamata ad una
funzione della famiglia \func{exec} cancella ogni \textit{stack} alternativo.
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
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