--- rpl/src/interruptions.c 2013/02/27 17:11:45 1.118 +++ rpl/src/interruptions.c 2013/04/01 15:29:38 1.124 @@ -1,6 +1,6 @@ /* ================================================================================ - RPL/2 (R) version 4.1.13 + RPL/2 (R) version 4.1.14 Copyright (C) 1989-2013 Dr. BERTRAND Joël This file is part of RPL/2. @@ -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; @@ -2409,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) { @@ -2951,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); @@ -2974,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))