--- rpl/src/instructions_s8.c 2017/06/28 09:20:36 1.78 +++ rpl/src/instructions_s8.c 2020/01/10 11:15:48 1.88 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.1.27 - Copyright (C) 1989-2017 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.32 + Copyright (C) 1989-2020 Dr. BERTRAND Joël This file is part of RPL/2. @@ -386,13 +386,16 @@ instruction_send(struct_processus *s_eta } # ifndef SEMAPHORES_NOMMES - if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) + while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) # else - if (sem_post((*s_etat_processus).semaphore_fork) != 0) + while(sem_wait((*s_etat_processus).semaphore_fork) != 0) # endif { - (*s_etat_processus).erreur_systeme = d_es_processus; - return; + if (errno != EINTR) + { + (*s_etat_processus).erreur_systeme = d_es_processus; + return; + } } } @@ -1183,8 +1186,6 @@ instruction_sqlquery(struct_processus *s int ios; int nombre_colonnes; - logical1 presence_resultat; - sqlite3_stmt *ppStmt; struct_liste_chainee *l_element_courant; @@ -1213,7 +1214,6 @@ instruction_sqlquery(struct_processus *s return; } - presence_resultat = d_faux; s_objet_resultat = NULL; l_element_courant = NULL; @@ -1565,7 +1565,8 @@ instruction_stop(struct_processus *s_eta if ((*(*((struct_processus_fils *) (*s_objet).objet)).thread).thread_actif == d_vrai) { - envoi_signal_thread((*(*((struct_processus_fils *) + envoi_signal_thread(s_etat_processus, + (*(*((struct_processus_fils *) (*s_objet).objet)).thread).tid, rpl_sigstop); }