--- rpl/src/gestion_threads.c 2012/12/19 09:58:23 1.71 +++ rpl/src/gestion_threads.c 2013/03/26 09:04:32 1.76 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.1.12 - Copyright (C) 1989-2012 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.13 + Copyright (C) 1989-2013 Dr. BERTRAND Joël This file is part of RPL/2. @@ -69,7 +69,7 @@ lancement_thread(void *argument) unsigned int erreur; - unsigned long i; + integer8 i; attente.tv_sec = 0; attente.tv_nsec = GRANULARITE_us * 1000; @@ -89,9 +89,8 @@ lancement_thread(void *argument) # endif (*s_argument_thread).tid = pthread_self(); - (*s_argument_thread).thread_actif = d_vrai; - insertion_thread(s_etat_processus, d_faux); + (*s_argument_thread).thread_actif = d_vrai; // Envoi d'une donnée pour signaler le démarrage du thread au thread // de surveillance. @@ -189,13 +188,11 @@ lancement_thread(void *argument) } else { - if (((*s_etat_processus).var_volatile_alarme == 0) - && ((*s_etat_processus).arret_depuis_abort == 0) + if (((*s_etat_processus).arret_depuis_abort == 0) && ((*s_etat_processus).at_exit != NULL)) { (*s_etat_processus).var_volatile_requete_arret = 0; - (*s_etat_processus).var_volatile_traitement_retarde_stop = - -1; + (*s_etat_processus).var_volatile_alarme = 0; if (evaluation(s_etat_processus, (*s_etat_processus).at_exit, 'E') == d_erreur) @@ -578,7 +575,7 @@ lancement_thread(void *argument) .var_volatile_traitement_retarde_stop; (*s_etat_processus).var_volatile_traitement_retarde_stop = 1; - for(i = 0; i < (unsigned long) (*(*((struct_processus_fils *) + for(i = 0; i < (*(*((struct_processus_fils *) (*(*l_element_courant).donnee).objet)).thread) .nombre_objets_dans_pipe; i++) {