--- rpl/src/interruptions.c 2011/09/04 07:46:08 1.64 +++ rpl/src/interruptions.c 2011/09/09 12:23:25 1.65 @@ -1718,6 +1718,9 @@ deverrouillage_gestionnaire_signaux() return; } +#define test_signal(signal) \ + if (signal_test == SIGTEST) { signal_test = signal; return; } + void interruption1(SIGHANDLER_ARGS) { @@ -1729,6 +1732,7 @@ interruption1(SIGHANDLER_ARGS) volatile sig_atomic_t exclusion = 0; + test_signal(signal); verrouillage_gestionnaire_signaux(); # ifdef _BROKEN_SIGINFO @@ -1906,6 +1910,7 @@ interruption2(SIGHANDLER_ARGS) struct_processus *s_etat_processus; + test_signal(signal); verrouillage_gestionnaire_signaux(); # ifdef _BROKEN_SIGINFO @@ -1995,6 +2000,7 @@ interruption3(SIGHANDLER_ARGS) struct_processus *s_etat_processus; + test_signal(signal); verrouillage_gestionnaire_signaux(); if ((s_etat_processus = recherche_thread(getpid(), pthread_self())) == NULL) @@ -2108,6 +2114,7 @@ interruption4(SIGHANDLER_ARGS) { struct_processus *s_etat_processus; + test_signal(signal); verrouillage_gestionnaire_signaux(); if ((s_etat_processus = recherche_thread(getpid(), pthread_self())) == NULL) @@ -2140,6 +2147,7 @@ interruption5(SIGHANDLER_ARGS) struct_processus *s_etat_processus; + test_signal(signal); verrouillage_gestionnaire_signaux(); # ifdef _BROKEN_SIGINFO @@ -2208,6 +2216,7 @@ interruption6(SIGHANDLER_ARGS) { struct_processus *s_etat_processus; + test_signal(signal); verrouillage_gestionnaire_signaux(); if ((s_etat_processus = recherche_thread(getpid(), pthread_self())) == NULL) @@ -2232,6 +2241,7 @@ interruption7(SIGHANDLER_ARGS) { struct_processus *s_etat_processus; + test_signal(signal); verrouillage_gestionnaire_signaux(); if ((s_etat_processus = recherche_thread(getpid(), pthread_self())) == NULL) @@ -2263,6 +2273,7 @@ interruption8(SIGHANDLER_ARGS) struct_processus *s_etat_processus; + test_signal(signal); verrouillage_gestionnaire_signaux(); # ifdef _BROKEN_SIGINFO @@ -2311,6 +2322,7 @@ interruption9(SIGHANDLER_ARGS) { struct_processus *s_etat_processus; + test_signal(signal); verrouillage_gestionnaire_signaux(); if ((s_etat_processus = recherche_thread(getpid(), pthread_self())) == NULL) @@ -2350,6 +2362,7 @@ interruption10(SIGHANDLER_ARGS) unsigned char nom[8 + 64 + 1]; + test_signal(signal); verrouillage_gestionnaire_signaux(); if ((s_etat_processus = recherche_thread(getpid(), pthread_self())) == NULL) @@ -2391,6 +2404,7 @@ interruption11(SIGHANDLER_ARGS) struct_processus *s_etat_processus; + test_signal(signal); verrouillage_gestionnaire_signaux(); # ifdef _BROKEN_SIGINFO