--- rpl/src/interruptions.c 2013/03/15 11:37:26 1.119 +++ rpl/src/interruptions.c 2013/03/24 22:06:10 1.123 @@ -555,7 +555,7 @@ liberation_threads(struct_processus *s_e struct_liste_variables_statiques *l_element_statique_courant; struct_liste_variables_statiques *l_element_statique_suivant; - unsigned long i; + integer8 i; void *element_candidat; void *element_courant; @@ -1739,7 +1739,6 @@ thread_signaux(void *argument) if (signal != (0xFF & rpl_sigmax)) { -uprintf("envoi signal %d vers %d\n", signal, getpid()); envoi_signal_processus(getpid(), signal); // Un signal SIGALRM est envoyé par le thread de surveillance // des signaux jusqu'à ce que les signaux soient tous traités. @@ -2410,8 +2409,9 @@ signal_hup(struct_processus *s_etat_proc return; } - snprintf(nom, 8 + 64 + 1, "rpl-out-%lu-%lu", (unsigned long) getpid(), - (unsigned long) pthread_self()); + snprintf(nom, 8 + 64 + 1, "rpl-out-%llu-%llu", + (unsigned long long) getpid(), + (unsigned long long) pthread_self()); if ((fichier = fopen(nom, "w+")) != NULL) { @@ -2952,6 +2952,12 @@ envoi_signal_thread(pthread_t tid, enum struct_processus *s_etat_processus; + if (pthread_mutex_lock(&mutex_interruptions) != 0) + { + pthread_mutex_unlock(&mutex_liste_threads); + return(1); + } + if (pthread_mutex_lock(&mutex_liste_threads) != 0) { return(1); @@ -2975,12 +2981,6 @@ envoi_signal_thread(pthread_t tid, enum { pthread_mutex_unlock(&mutex_liste_threads); return(1); - } - - if (pthread_mutex_lock(&mutex_interruptions) != 0) - { - pthread_mutex_unlock(&mutex_liste_threads); - return(1); } s_etat_processus = (*((struct_thread *) (*l_element_courant).donnee))