Fonctions | |
void | FredMaskOn () |
Début d'exclusion mutuelle par masquage des interruptions. | |
void | FredMaskOff () |
Fin d'exclusion mutuelle par démasquage des interruptions. | |
void | FredMasksInit () |
Initialisation des masques de validation/inhibition des interruptions. | |
Variables | |
sigset_t | ALL_BLOCKED |
Masque d'inhibition des interruptions. | |
sigset_t | NO_BLOCKED |
Masque d'autorisation des interruptions. |
|
Implantation L'implantation UNIX est très simple. Il suffit de changer le masque des signaux à la valeur définissant les signaux à laisser passer.
00052 { 00053 sigprocmask(SIG_SETMASK, &NO_BLOCKED, (sigset_t *)0); 00054 } |
|
Implantation L'implantation UNIX est très simple. Il suffit de changer le masque des signaux à la valeur définissant les signaux à bloquer.
00036 { 00037 sigprocmask(SIG_SETMASK, &ALL_BLOCKED, (sigset_t *)0); 00038 } |
|
Implantation L'implantation UNIX est très simple. Il suffit de définir le vecteur binaire autorisant/interdisant chacune des interruption. On garde la possibilité de tuer le process UNIX en cas de programme en boucle infinie masquée en laissant passer le signal SIGINT
00069 { 00070 sigfillset(&ALL_BLOCKED); /* on masque toutes les interruptions */ 00071 sigdelset (&ALL_BLOCKED,SIGINT ); /* sauf SIGINT */ 00072 sigemptyset(&NO_BLOCKED); /* on demasque toutes les interruptions */ 00073 } |