Diff for /rpl/src/instructions_s1.c between versions 1.100 and 1.102

version 1.100, 2019/02/09 13:36:40 version 1.102, 2019/02/12 14:38:43
Line 3406  instruction_syseval(struct_processus *s_ Line 3406  instruction_syseval(struct_processus *s_
     struct sigaction            action_courante;      struct sigaction            action_courante;
     struct sigaction            action_passee;      struct sigaction            action_passee;
   
       struct timespec             attente;
   
     unsigned char               *ligne;      unsigned char               *ligne;
     unsigned char               *ptr;      unsigned char               *ptr;
     unsigned char               *ptr2;      unsigned char               *ptr2;
Line 3671  instruction_syseval(struct_processus *s_ Line 3673  instruction_syseval(struct_processus *s_
   
         fflush(NULL);          fflush(NULL);
   
         verrouillage_threads_concurrents(s_etat_processus);          attente.tv_sec = 0;
           attente.tv_nsec = GRANULARITE_us * 1000;
   
           while(pthread_mutex_trylock(&mutex_sigaction) != 0)
           {
   #           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;
               }
   
               nanosleep(&attente, NULL);
               INCR_GRANULARITE(attente.tv_nsec);
   
   #           ifndef SEMAPHORES_NOMMES
                   while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
   #           else
                   while(sem_wait((*s_etat_processus).semaphore_fork) != 0)
   #           endif
               {
                   (*s_etat_processus).erreur_systeme = d_es_processus;
                   return;
               }
           }
   
         action_courante.sa_handler = SIG_IGN;          action_courante.sa_handler = SIG_IGN;
         action_courante.sa_flags = 0;          action_courante.sa_flags = 0;
Line 3690  instruction_syseval(struct_processus *s_ Line 3719  instruction_syseval(struct_processus *s_
             return;              return;
         }          }
   
           verrouillage_threads_concurrents(s_etat_processus);
   
         pid = fork();          pid = fork();
   
         if (pid < 0)          if (pid < 0)
Line 3837  instruction_syseval(struct_processus *s_ Line 3868  instruction_syseval(struct_processus *s_
                 return;                  return;
             }              }
   
               if (pthread_mutex_unlock(&mutex_sigaction) != 0)
               {
                   (*s_etat_processus).erreur_systeme = d_es_processus;
                   return;
               }
   
             deverrouillage_threads_concurrents(s_etat_processus);              deverrouillage_threads_concurrents(s_etat_processus);
   
             if (close(pipes_entree[0]) != 0)              if (close(pipes_entree[0]) != 0)

Removed from v.1.100  
changed lines
  Added in v.1.102


CVSweb interface <joel.bertrand@systella.fr>