--- rpl/src/instructions_r6.c 2019/02/09 13:36:40 1.75 +++ rpl/src/instructions_r6.c 2019/02/11 09:45:51 1.76 @@ -346,6 +346,12 @@ instruction_recv(struct_processus *s_eta return; } + if (pthread_mutex_lock(&mutex_sigaction) != 0) + { + (*s_etat_processus).erreur_systeme = d_es_processus; + return; + } + action.sa_handler = SIG_IGN; action.sa_flags = 0; @@ -370,6 +376,7 @@ instruction_recv(struct_processus *s_eta profilage(s_etat_processus, NULL); } + pthread_mutex_unlock(&mutex_sigaction); (*s_etat_processus).erreur_systeme = d_es_signal; return; } @@ -380,6 +387,7 @@ instruction_recv(struct_processus *s_eta if (sem_post((*s_etat_processus).semaphore_fork) != 0) # endif { + pthread_mutex_unlock(&mutex_sigaction); (*s_etat_processus).erreur_systeme = d_es_processus; return; } @@ -404,6 +412,7 @@ instruction_recv(struct_processus *s_eta { if (errno != EINTR) { + pthread_mutex_unlock(&mutex_sigaction); (*s_etat_processus).erreur_systeme = d_es_processus; return; } @@ -433,6 +442,12 @@ instruction_recv(struct_processus *s_eta return; } + if (pthread_mutex_unlock(&mutex_sigaction) != 0) + { + (*s_etat_processus).erreur_systeme = d_es_processus; + return; + } + if (pthread_mutex_unlock(&((*s_etat_processus).mutex_pile_processus)) != 0) {