--- rpl/src/interruptions.c 2010/08/06 15:33:03 1.28 +++ rpl/src/interruptions.c 2010/08/13 21:00:37 1.29 @@ -1733,6 +1733,10 @@ interruption1(int signal, siginfo_t *sig volatile sig_atomic_t exclusion = 0; +# ifdef _BROKEN_SIGINFO + (*siginfo).si_pid=getpid(); +# endif + verrouillage_gestionnaire_signaux(); switch(signal) @@ -1868,6 +1872,10 @@ interruption2(int signal, siginfo_t *sig pthread_t thread; struct_processus *s_etat_processus; +# ifdef _BROKEN_SIGINFO + (*siginfo).si_pid=getpid(); +# endif + verrouillage_gestionnaire_signaux(); if (siginfo == NULL) @@ -1941,6 +1949,10 @@ interruption3(int signal, siginfo_t *sig static int compteur = 0; +# ifdef _BROKEN_SIGINFO + (*siginfo).si_pid=getpid(); +# endif + verrouillage_gestionnaire_signaux(); if ((s_etat_processus = recherche_thread(getpid(), pthread_self())) == NULL) @@ -1999,6 +2011,10 @@ interruption4(int signal, siginfo_t *sig { struct_processus *s_etat_processus; +# ifdef _BROKEN_SIGINFO + (*siginfo).si_pid=getpid(); +# endif + verrouillage_gestionnaire_signaux(); if ((s_etat_processus = recherche_thread(getpid(), pthread_self())) == NULL) @@ -2028,6 +2044,10 @@ interruption5(int signal, siginfo_t *sig pthread_t thread; struct_processus *s_etat_processus; +# ifdef _BROKEN_SIGINFO + (*siginfo).si_pid=getpid(); +# endif + verrouillage_gestionnaire_signaux(); if ((*siginfo).si_pid == getpid()) @@ -2090,6 +2110,10 @@ interruption6(int signal, siginfo_t *sig { struct_processus *s_etat_processus; +# ifdef _BROKEN_SIGINFO + (*siginfo).si_pid=getpid(); +# endif + verrouillage_gestionnaire_signaux(); if ((s_etat_processus = recherche_thread(getpid(), pthread_self())) == NULL) @@ -2114,6 +2138,10 @@ interruption7(int signal, siginfo_t *sig { struct_processus *s_etat_processus; +# ifdef _BROKEN_SIGINFO + (*siginfo).si_pid=getpid(); +# endif + verrouillage_gestionnaire_signaux(); if ((s_etat_processus = recherche_thread(getpid(), pthread_self())) == NULL) @@ -2142,6 +2170,10 @@ interruption8(int signal, siginfo_t *sig pthread_t thread; struct_processus *s_etat_processus; +# ifdef _BROKEN_SIGINFO + (*siginfo).si_pid=getpid(); +# endif + verrouillage_gestionnaire_signaux(); if ((*siginfo).si_pid == getpid()) @@ -2184,6 +2216,10 @@ interruption9(int signal, siginfo_t *sig { struct_processus *s_etat_processus; +# ifdef _BROKEN_SIGINFO + (*siginfo).si_pid=getpid(); +# endif + verrouillage_gestionnaire_signaux(); if ((s_etat_processus = recherche_thread(getpid(), pthread_self())) == NULL) @@ -2213,6 +2249,10 @@ interruption10(int signal, siginfo_t *si unsigned char nom[8 + 64 + 1]; +# ifdef _BROKEN_SIGINFO + (*siginfo).si_pid=getpid(); +# endif + verrouillage_gestionnaire_signaux(); if ((s_etat_processus = recherche_thread(getpid(), pthread_self())) == NULL) @@ -2251,6 +2291,10 @@ interruption11(int signal, siginfo_t *si pthread_t thread; struct_processus *s_etat_processus; +# ifdef _BROKEN_SIGINFO + (*siginfo).si_pid=getpid(); +# endif + verrouillage_gestionnaire_signaux(); if ((*siginfo).si_pid == getpid())