--- rpl/src/rpl.h 2011/09/14 14:34:28 1.120 +++ rpl/src/rpl.h 2011/09/14 17:56:00 1.121 @@ -227,6 +227,7 @@ enum signaux_rpl rpl_sigalrm, // Signal d'alarme (erreur système) depuis un fils rpl_sighup, rpl_sigtstp, + rpl_sigexcept, rpl_sigmax }; @@ -397,34 +398,14 @@ typedef unsigned char t_8_bits; extern pthread_mutex_t mutex_sem; # endif - extern pthread_key_t semaphore_fork_processus_courant; + extern pthread_mutex_t mutex_liste_threads; + extern pthread_mutex_t mutex_gestionnaires_signaux_atomique; extern sem_t # ifdef SEMAPHORES_NOMMES - * -# endif - semaphore_liste_threads; - - extern sem_t -# ifdef SEMAPHORES_NOMMES - * + * # endif semaphore_gestionnaires_signaux; - - extern sem_t -# ifdef SEMAPHORES_NOMMES - * -# endif - semaphore_gestionnaires_signaux_atomique; - -# ifdef SEMAPHORES_NOMMES - // 0 -> liste_threads - // 1 -> gestionnaire_signaux - // 2 -> gestionnaire_signaux_atomique - // 3 -> &((*s_etat_processus).semaphore_fork) - extern unsigned char noms_semaphores[4][LONGUEUR_NOM_SEMAPHORE]; - extern sem_t *semaphores_nommes[4]; -# endif # else jmp_buf contexte; jmp_buf contexte_initial; @@ -439,30 +420,17 @@ typedef unsigned char t_8_bits; pthread_mutex_t mutex_sem = PTHREAD_MUTEX_INITIALIZER; # endif - pthread_key_t semaphore_fork_processus_courant; - + pthread_mutex_t mutex_liste_threads = + PTHREAD_MUTEX_INITIALIZER; + pthread_mutex_t mutex_gestiionnaires_signaux = + PTHREAD_MUTEX_INITIALIZER; + pthread_mutex_t mutex_gestionnaires_signaux_atomique = + PTHREAD_MUTEX_INITIALIZER; sem_t # ifdef SEMAPHORES_NOMMES - * -# endif - semaphore_liste_threads; - - sem_t -# ifdef SEMAPHORES_NOMMES - * + * # endif semaphore_gestionnaires_signaux; - - sem_t -# ifdef SEMAPHORES_NOMMES - * -# endif - semaphore_gestionnaires_signaux_atomique; - -# ifdef SEMAPHORES_NOMMES - unsigned char noms_semaphores[4][LONGUEUR_NOM_SEMAPHORE]; - sem_t *semaphores_nommes[4]; -# endif # endif #endif @@ -2179,7 +2147,6 @@ typedef struct processus pid_t pid_processus_pere; pthread_t tid_processus_pere; - pthread_t tid_courant; logical1 processus_detache; @@ -2195,12 +2162,8 @@ typedef struct processus pthread_mutex_t mutex; pthread_mutex_t mutex_allocation; - // Sémaphore autorisant les fork() - sem_t -# ifdef SEMAPHORES_NOMMES - * -# endif - semaphore_fork; + // Mutex autorisant les fork() + pthread_mutex_t mutex_fork; /* Mutexes */