Diff for /rpl/src/instructions_s1.c between versions 1.93 and 1.94

version 1.93, 2019/01/01 09:03:09 version 1.94, 2019/01/28 15:34:25
Line 3967  instruction_syseval(struct_processus *s_ Line 3967  instruction_syseval(struct_processus *s_
                 return;                  return;
             }              }
   
             do              longueur_lecture = 65536;
             {  
                 if (kill(pid, 0) != 0)  
                 {  
                     break;  
                 }  
   
                 /*  
                  * Récupération de la valeur de retour du processus détaché  
                  */  
   
 #               ifndef SEMAPHORES_NOMMES  
                     if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0)  
 #               else  
                     if (sem_post((*s_etat_processus).semaphore_fork) != 0)  
 #               endif  
                 {  
                     (*s_etat_processus).erreur_systeme = d_es_processus;  
                     return;  
                 }  
   
                 while(waitpid(pid, &status, 0) == -1)  
                 {  
                     if (errno != EINTR)  
                     {  
 #                       ifndef SEMAPHORES_NOMMES  
                             if (sem_post(&((*s_etat_processus).semaphore_fork))  
                                     != 0)  
 #                       else  
                             if (sem_post((*s_etat_processus).semaphore_fork)  
                                     != 0)  
 #                       endif  
                         {  
                             (*s_etat_processus).erreur_systeme = d_es_processus;  
                             return;  
                         }  
   
                         (*s_etat_processus).erreur_systeme = d_es_processus;  
                         return;  
                     }  
                 }  
   
 #               ifndef SEMAPHORES_NOMMES  
                     while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)  
 #               else  
                     while(sem_wait((*s_etat_processus).semaphore_fork) != 0)  
 #               endif  
                 {  
                     if (errno != EINTR)  
                     {  
                         (*s_etat_processus).erreur_systeme = d_es_processus;  
                         return;  
                     }  
                 }  
             } while((!WIFEXITED(status)) && (!WIFSIGNALED(status)));  
   
             longueur_lecture = 256;  
             pointeur = 0;              pointeur = 0;
             nombre_iterations = 1;              nombre_iterations = 1;
   
Line 4061  instruction_syseval(struct_processus *s_ Line 4005  instruction_syseval(struct_processus *s_
                 }                  }
   
                 tampon[pointeur + ios] = d_code_fin_chaine;                  tampon[pointeur + ios] = d_code_fin_chaine;
                 pointeur += longueur_lecture;                  pointeur += ios;
                 nombre_iterations++;                  nombre_iterations++;
   
                 if ((tampon = realloc(tampon,                  if ((tampon = realloc(tampon,
Line 4084  instruction_syseval(struct_processus *s_ Line 4028  instruction_syseval(struct_processus *s_
                 }                  }
             }              }
   
               do
               {
                   if (kill(pid, 0) != 0)
                   {
                       break;
                   }
   
                   /*
                    * Récupération de la valeur de retour du processus détaché
                    */
   
   #               ifndef SEMAPHORES_NOMMES
                       if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0)
   #               else
                       if (sem_post((*s_etat_processus).semaphore_fork) != 0)
   #               endif
                   {
                       (*s_etat_processus).erreur_systeme = d_es_processus;
                       return;
                   }
   
                   while(waitpid(pid, &status, 0) == -1)
                   {
                       if (errno != EINTR)
                       {
   #                       ifndef SEMAPHORES_NOMMES
                               if (sem_post(&((*s_etat_processus).semaphore_fork))
                                       != 0)
   #                       else
                               if (sem_post((*s_etat_processus).semaphore_fork)
                                       != 0)
   #                       endif
                           {
                               (*s_etat_processus).erreur_systeme = d_es_processus;
                               return;
                           }
   
                           (*s_etat_processus).erreur_systeme = d_es_processus;
                           return;
                       }
                   }
   
   #               ifndef SEMAPHORES_NOMMES
                       while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
   #               else
                       while(sem_wait((*s_etat_processus).semaphore_fork) != 0)
   #               endif
                   {
                       if (errno != EINTR)
                       {
                           (*s_etat_processus).erreur_systeme = d_es_processus;
                           return;
                       }
                   }
               } while((!WIFEXITED(status)) && (!WIFSIGNALED(status)));
   
 #           ifndef SEMAPHORES_NOMMES  #           ifndef SEMAPHORES_NOMMES
                 while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)                  while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
 #           else  #           else

Removed from v.1.93  
changed lines
  Added in v.1.94


CVSweb interface <joel.bertrand@systella.fr>