--- rpl/src/gestion_threads.c 2011/09/14 17:55:59 1.51 +++ rpl/src/gestion_threads.c 2011/09/20 08:56:23 1.52 @@ -76,40 +76,6 @@ lancement_thread(void *argument) (*s_argument_thread).tid = pthread_self(); (*s_argument_thread).thread_actif = d_vrai; - if (pthread_mutex_unlock(&((*s_etat_processus).mutex)) != 0) - { - (*s_etat_processus).erreur_systeme = d_es_processus; - - pthread_mutex_lock(&((*s_argument_thread).mutex)); - pthread_mutex_unlock(&((*s_argument_thread).mutex)); - - (*s_argument_thread).thread_actif = d_faux; - - tid_final = -2; - - while((longueur_ecriture = write_atomic(s_etat_processus, - (*s_argument_thread).pipe_nombre_interruptions_attente[1], - &tid_final, sizeof(tid_final))) != sizeof(tid_final)) - { - if (longueur_ecriture == -1) - { - break; - } - } - - while((longueur_ecriture = write_atomic(s_etat_processus, - (*s_argument_thread).pipe_nombre_objets_attente[1], - &tid_final, sizeof(tid_final))) != sizeof(tid_final)) - { - if (longueur_ecriture == -1) - { - break; - } - } - - pthread_exit(NULL); - } - insertion_thread(s_etat_processus, d_faux); // Envoi d'une donnée pour signaler le démarrage du thread au thread @@ -119,7 +85,6 @@ lancement_thread(void *argument) (*s_argument_thread).pipe_nombre_objets_attente[1], "-", sizeof(unsigned char)) != sizeof(unsigned char)) { - pthread_mutex_unlock(&((*s_etat_processus).mutex)); (*s_etat_processus).erreur_systeme = d_es_processus; pthread_mutex_lock(&((*s_argument_thread).mutex)); @@ -1018,7 +983,7 @@ lancement_thread(void *argument) retrait_thread(s_etat_processus); pthread_mutex_destroy(&((*s_etat_processus).mutex)); pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation)); - pthread_mutex_destroy(&((*s_etat_processus).mutex_fork)); + sem_destroy(&((*s_etat_processus).semaphore_fork)); liberation_contexte_cas(s_etat_processus); free((*s_etat_processus).localisation);