Diff for /rpl/src/instructions_s9.c between versions 1.37 and 1.38

version 1.37, 2011/09/14 14:34:28 version 1.38, 2011/09/14 17:55:59
Line 854  instruction_suspend(struct_processus *s_ Line 854  instruction_suspend(struct_processus *s_
         }          }
     }      }
   
 #   ifndef SEMAPHORES_NOMMES      if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0)
     if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0)  
     {      {
         (*s_etat_processus).erreur_systeme = d_es_processus;          (*s_etat_processus).erreur_systeme = d_es_processus;
         return;          return;
     }      }
 #   else  
     if (sem_post((*s_etat_processus).semaphore_fork) != 0)  
     {  
         (*s_etat_processus).erreur_systeme = d_es_processus;  
         return;  
     }  
 #   endif  
   
     for((*s_etat_processus).redemarrage_processus = d_faux;;)      for((*s_etat_processus).redemarrage_processus = d_faux;;)
     {      {
Line 881  instruction_suspend(struct_processus *s_ Line 873  instruction_suspend(struct_processus *s_
         INCR_GRANULARITE(attente.tv_nsec);          INCR_GRANULARITE(attente.tv_nsec);
     }      }
   
 #   ifndef SEMAPHORES_NOMMES      if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0)
     while(sem_wait(&((*s_etat_processus).semaphore_fork)) == -1)  
 #   else  
     while(sem_wait((*s_etat_processus).semaphore_fork) == -1)  
 #   endif  
     {      {
         if (errno != EINTR)          (*s_etat_processus).erreur_systeme = d_es_processus;
         {          return;
             (*s_etat_processus).erreur_systeme = d_es_processus;  
             return;  
         }  
     }      }
   
     if ((*s_etat_processus).profilage == d_vrai)      if ((*s_etat_processus).profilage == d_vrai)
Line 1250  instruction_swi(struct_processus *s_etat Line 1235  instruction_swi(struct_processus *s_etat
             attente.tv_sec = 0;              attente.tv_sec = 0;
             attente.tv_nsec = GRANULARITE_us * 1000;              attente.tv_nsec = GRANULARITE_us * 1000;
   
 #           ifndef SEMAPHORES_NOMMES              if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0)
             if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0)  
             {  
                 (*s_etat_processus).erreur_systeme = d_es_processus;  
                 return;  
             }  
 #           else  
             if (sem_post((*s_etat_processus).semaphore_fork) != 0)  
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  (*s_etat_processus).erreur_systeme = d_es_processus;
                 return;                  return;
             }              }
 #           endif  
   
             while((longueur_ecriture = write_atomic(s_etat_processus,              while((longueur_ecriture = write_atomic(s_etat_processus,
                     (*s_etat_processus).pipe_nombre_objets_attente,                      (*s_etat_processus).pipe_nombre_objets_attente,
                     &pid, sizeof(pid))) != sizeof(pid))                      &pid, sizeof(pid))) != sizeof(pid))
             {              {
 #               ifndef SEMAPHORES_NOMMES                  if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0)
                 while(sem_wait(&((*s_etat_processus).semaphore_fork)) == -1)  
 #               else  
                 while(sem_wait((*s_etat_processus).semaphore_fork) == -1)  
 #               endif  
                 {                  {
                     if (errno != EINTR)                      (*s_etat_processus).erreur_systeme = d_es_processus;
                     {                      return;
                         (*s_etat_processus).erreur_systeme = d_es_processus;  
                         return;  
                     }  
                 }                  }
   
                 if (longueur_ecriture == -1)                  if (longueur_ecriture == -1)
Line 1303  instruction_swi(struct_processus *s_etat Line 1273  instruction_swi(struct_processus *s_etat
                 nanosleep(&attente, NULL);                  nanosleep(&attente, NULL);
                 INCR_GRANULARITE(attente.tv_nsec);                  INCR_GRANULARITE(attente.tv_nsec);
   
 #               ifndef SEMAPHORES_NOMMES                  if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork))
                 if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0)                          != 0)
 #               else  
                 if (sem_post((*s_etat_processus).semaphore_fork) != 0)  
 #               endif  
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_processus;                      (*s_etat_processus).erreur_systeme = d_es_processus;
                     return;                      return;
                 }                  }
             }              }
   
 #           ifndef SEMAPHORES_NOMMES              if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0)
             while(sem_wait(&((*s_etat_processus).semaphore_fork)) == -1)  
 #           else  
             while(sem_wait((*s_etat_processus).semaphore_fork) == -1)  
 #           endif  
             {              {
                 if (errno != EINTR)                  (*s_etat_processus).erreur_systeme = d_es_processus;
                 {                  return;
                     (*s_etat_processus).erreur_systeme = d_es_processus;  
                     return;  
                 }  
             }              }
         }          }
         else          else
Line 1334  instruction_swi(struct_processus *s_etat Line 1294  instruction_swi(struct_processus *s_etat
             attente.tv_sec = 0;              attente.tv_sec = 0;
             attente.tv_nsec = GRANULARITE_us * 1000;              attente.tv_nsec = GRANULARITE_us * 1000;
   
 #           ifndef SEMAPHORES_NOMMES              if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0)
             if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0)  
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  (*s_etat_processus).erreur_systeme = d_es_processus;
                 return;                  return;
             }              }
 #           else  
             if (sem_post((*s_etat_processus).semaphore_fork) != 0)  
             {  
                 (*s_etat_processus).erreur_systeme = d_es_processus;  
                 return;  
             }  
 #           endif  
   
             while((longueur_ecriture = write_atomic(s_etat_processus,              while((longueur_ecriture = write_atomic(s_etat_processus,
                     (*s_etat_processus).pipe_nombre_objets_attente,                      (*s_etat_processus).pipe_nombre_objets_attente,
                     &tid, sizeof(tid))) != sizeof(tid))                      &tid, sizeof(tid))) != sizeof(tid))
             {              {
 #               ifndef SEMAPHORES_NOMMES                  if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0)
                 while(sem_wait(&((*s_etat_processus).semaphore_fork)) == -1)  
 #               else  
                 while(sem_wait((*s_etat_processus).semaphore_fork) == -1)  
 #               endif  
                 {                  {
                     if (errno != EINTR)                      (*s_etat_processus).erreur_systeme = d_es_processus;
                     {                      return;
                         (*s_etat_processus).erreur_systeme = d_es_processus;  
                         return;  
                     }  
                 }                  }
   
                 if (longueur_ecriture == -1)                  if (longueur_ecriture == -1)
Line 1387  instruction_swi(struct_processus *s_etat Line 1332  instruction_swi(struct_processus *s_etat
                 nanosleep(&attente, NULL);                  nanosleep(&attente, NULL);
                 INCR_GRANULARITE(attente.tv_nsec);                  INCR_GRANULARITE(attente.tv_nsec);
   
 #               ifndef SEMAPHORES_NOMMES                  if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork))
                 if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0)                          != 0)
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_processus;                      (*s_etat_processus).erreur_systeme = d_es_processus;
                     return;                      return;
                 }                  }
 #               else  
                 if (sem_post((*s_etat_processus).semaphore_fork) != 0)  
                 {  
                     (*s_etat_processus).erreur_systeme = d_es_processus;  
                     return;  
                 }  
 #               endif  
             }              }
   
 #           ifndef SEMAPHORES_NOMMES              if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0)
             while(sem_wait(&((*s_etat_processus).semaphore_fork)) == -1)  
 #           else  
             while(sem_wait((*s_etat_processus).semaphore_fork) == -1)  
 #           endif  
             {              {
                 if (errno != EINTR)                  (*s_etat_processus).erreur_systeme = d_es_processus;
                 {                  return;
                     (*s_etat_processus).erreur_systeme = d_es_processus;  
                     return;  
                 }  
             }              }
         }          }
   
Line 1421  instruction_swi(struct_processus *s_etat Line 1352  instruction_swi(struct_processus *s_etat
         attente.tv_sec = 0;          attente.tv_sec = 0;
         attente.tv_nsec = GRANULARITE_us * 1000;          attente.tv_nsec = GRANULARITE_us * 1000;
   
 #       ifndef SEMAPHORES_NOMMES          if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0)
         if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0)  
         {  
             (*s_etat_processus).erreur_systeme = d_es_processus;  
             return;  
         }  
 #       else  
         if (sem_post((*s_etat_processus).semaphore_fork) != 0)  
         {          {
             (*s_etat_processus).erreur_systeme = d_es_processus;              (*s_etat_processus).erreur_systeme = d_es_processus;
             return;              return;
         }          }
 #       endif  
   
         while((longueur_ecriture = write_atomic(s_etat_processus,          while((longueur_ecriture = write_atomic(s_etat_processus,
                 (*s_etat_processus).pipe_interruptions,                  (*s_etat_processus).pipe_interruptions,
                 &interruption_reduite, sizeof(interruption_reduite)))                  &interruption_reduite, sizeof(interruption_reduite)))
                 != sizeof(interruption_reduite))                  != sizeof(interruption_reduite))
         {          {
 #           ifndef SEMAPHORES_NOMMES              if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0)
             while(sem_wait(&((*s_etat_processus).semaphore_fork)) == -1)  
 #           else  
             while(sem_wait((*s_etat_processus).semaphore_fork) == -1)  
 #           endif  
             {              {
                 if (errno != EINTR)                  (*s_etat_processus).erreur_systeme = d_es_processus;
                 {                  return;
                     (*s_etat_processus).erreur_systeme = d_es_processus;  
                     return;  
                 }  
             }              }
   
             if (longueur_ecriture == -1)              if (longueur_ecriture == -1)
Line 1475  instruction_swi(struct_processus *s_etat Line 1391  instruction_swi(struct_processus *s_etat
             nanosleep(&attente, NULL);              nanosleep(&attente, NULL);
             INCR_GRANULARITE(attente.tv_nsec);              INCR_GRANULARITE(attente.tv_nsec);
   
 #           ifndef SEMAPHORES_NOMMES              if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0)
             if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0)  
             {  
                 (*s_etat_processus).erreur_systeme = d_es_processus;  
                 return;  
             }  
 #           else  
             if (sem_post((*s_etat_processus).semaphore_fork) != 0)  
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  (*s_etat_processus).erreur_systeme = d_es_processus;
                 return;                  return;
             }              }
 #           endif  
         }          }
   
 #       ifndef SEMAPHORES_NOMMES          if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0)
         while(sem_wait(&((*s_etat_processus).semaphore_fork)) == -1)  
 #       else  
         while(sem_wait((*s_etat_processus).semaphore_fork) == -1)  
 #       endif  
         {          {
             if (errno != EINTR)              (*s_etat_processus).erreur_systeme = d_es_processus;
             {              return;
                 (*s_etat_processus).erreur_systeme = d_es_processus;  
                 return;  
             }  
         }          }
   
         if ((*s_etat_processus).processus_detache == d_vrai)          if ((*s_etat_processus).processus_detache == d_vrai)
Line 1510  instruction_swi(struct_processus *s_etat Line 1411  instruction_swi(struct_processus *s_etat
             attente.tv_sec = 0;              attente.tv_sec = 0;
             attente.tv_nsec = GRANULARITE_us * 1000;              attente.tv_nsec = GRANULARITE_us * 1000;
   
 #           ifndef SEMAPHORES_NOMMES              if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0)
             if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0)  
             {  
                 (*s_etat_processus).erreur_systeme = d_es_processus;  
                 return;  
             }  
 #           else  
             if (sem_post((*s_etat_processus).semaphore_fork) != 0)  
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  (*s_etat_processus).erreur_systeme = d_es_processus;
                 return;                  return;
             }              }
 #           endif  
   
             while((longueur_ecriture = write_atomic(s_etat_processus,              while((longueur_ecriture = write_atomic(s_etat_processus,
                     (*s_etat_processus).pipe_nombre_interruptions_attente,                      (*s_etat_processus).pipe_nombre_interruptions_attente,
                     &pid, sizeof(pid))) != sizeof(pid))                      &pid, sizeof(pid))) != sizeof(pid))
             {              {
 #               ifndef SEMAPHORES_NOMMES                  if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0)
                 while(sem_wait(&((*s_etat_processus).semaphore_fork)) == -1)  
 #               else  
                 while(sem_wait((*s_etat_processus).semaphore_fork) == -1)  
 #               endif  
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_processus;                      (*s_etat_processus).erreur_systeme = d_es_processus;
                     return;                      return;
Line 1560  instruction_swi(struct_processus *s_etat Line 1449  instruction_swi(struct_processus *s_etat
                 nanosleep(&attente, NULL);                  nanosleep(&attente, NULL);
                 INCR_GRANULARITE(attente.tv_nsec);                  INCR_GRANULARITE(attente.tv_nsec);
   
 #               ifndef SEMAPHORES_NOMMES                  if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork))
                 if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0)                          != 0)
                 {  
                     (*s_etat_processus).erreur_systeme = d_es_processus;  
                     return;  
                 }  
 #               else  
                 if (sem_post((*s_etat_processus).semaphore_fork) != 0)  
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_processus;                      (*s_etat_processus).erreur_systeme = d_es_processus;
                     return;                      return;
                 }                  }
 #               endif  
             }              }
   
             pid = getpid();              pid = getpid();
Line 1584  instruction_swi(struct_processus *s_etat Line 1466  instruction_swi(struct_processus *s_etat
                     (*s_etat_processus).pipe_nombre_interruptions_attente,                      (*s_etat_processus).pipe_nombre_interruptions_attente,
                     &pid, sizeof(pid))) != sizeof(pid))                      &pid, sizeof(pid))) != sizeof(pid))
             {              {
 #               ifndef SEMAPHORES_NOMMES                  if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0)
                 while(sem_wait(&((*s_etat_processus).semaphore_fork)) == -1)  
 #               else  
                 while(sem_wait((*s_etat_processus).semaphore_fork) == -1)  
 #               endif  
                 {                  {
                     if (errno != EINTR)                      (*s_etat_processus).erreur_systeme = d_es_processus;
                     {                      return;
                         (*s_etat_processus).erreur_systeme = d_es_processus;  
                         return;  
                     }  
                 }                  }
   
                 if (longueur_ecriture == -1)                  if (longueur_ecriture == -1)
Line 1619  instruction_swi(struct_processus *s_etat Line 1494  instruction_swi(struct_processus *s_etat
                 nanosleep(&attente, NULL);                  nanosleep(&attente, NULL);
                 INCR_GRANULARITE(attente.tv_nsec);                  INCR_GRANULARITE(attente.tv_nsec);
   
 #               ifndef SEMAPHORES_NOMMES                  if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork))
                 if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0)                          != 0)
                 {  
                     (*s_etat_processus).erreur_systeme = d_es_processus;  
                     return;  
                 }  
 #               else  
                 if (sem_post((*s_etat_processus).semaphore_fork) != 0)  
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_processus;                      (*s_etat_processus).erreur_systeme = d_es_processus;
                     return;                      return;
                 }                  }
 #               endif  
             }              }
   
 #           ifndef SEMAPHORES_NOMMES              if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0)
             while(sem_wait(&((*s_etat_processus).semaphore_fork)) == -1)  
 #           else  
             while(sem_wait((*s_etat_processus).semaphore_fork) == -1)  
 #           endif  
             {              {
                 if (errno != EINTR)                  (*s_etat_processus).erreur_systeme = d_es_processus;
                 {                  return;
                     (*s_etat_processus).erreur_systeme = d_es_processus;  
                     return;  
                 }  
             }              }
         }          }
         else          else
         {          {
             tid = -3;              tid = -3;
   
 #           ifndef SEMAPHORES_NOMMES              if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0)
             if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0)  
             {  
                 (*s_etat_processus).erreur_systeme = d_es_processus;  
                 return;  
             }  
 #           else  
             if (sem_post((*s_etat_processus).semaphore_fork) != 0)  
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  (*s_etat_processus).erreur_systeme = d_es_processus;
                 return;                  return;
             }              }
 #           endif  
   
             while((longueur_ecriture = write_atomic(s_etat_processus,              while((longueur_ecriture = write_atomic(s_etat_processus,
                     (*s_etat_processus).pipe_nombre_interruptions_attente,                      (*s_etat_processus).pipe_nombre_interruptions_attente,
                     &tid, sizeof(tid))) != sizeof(tid))                      &tid, sizeof(tid))) != sizeof(tid))
             {              {
 #               ifndef SEMAPHORES_NOMMES                  if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0)
                 while(sem_wait(&((*s_etat_processus).semaphore_fork)) == -1)  
 #               else  
                 while(sem_wait((*s_etat_processus).semaphore_fork) == -1)  
 #               endif  
                 {                  {
                     if (errno != EINTR)                      (*s_etat_processus).erreur_systeme = d_es_processus;
                     {                      return;
                         (*s_etat_processus).erreur_systeme = d_es_processus;  
                         return;  
                     }  
                 }                  }
   
                 if (longueur_ecriture == -1)                  if (longueur_ecriture == -1)
Line 1704  instruction_swi(struct_processus *s_etat Line 1550  instruction_swi(struct_processus *s_etat
                 nanosleep(&attente, NULL);                  nanosleep(&attente, NULL);
                 INCR_GRANULARITE(attente.tv_nsec);                  INCR_GRANULARITE(attente.tv_nsec);
   
 #               ifndef SEMAPHORES_NOMMES                  if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork))
                 if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0)                          != 0)
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_processus;                      (*s_etat_processus).erreur_systeme = d_es_processus;
                     return;                      return;
                 }                  }
 #               else  
                 if (sem_post((*s_etat_processus).semaphore_fork) != 0)  
                 {  
                     (*s_etat_processus).erreur_systeme = d_es_processus;  
                     return;  
                 }  
 #               endif  
             }              }
   
             tid = pthread_self();              tid = pthread_self();
Line 1728  instruction_swi(struct_processus *s_etat Line 1567  instruction_swi(struct_processus *s_etat
                     (*s_etat_processus).pipe_nombre_interruptions_attente,                      (*s_etat_processus).pipe_nombre_interruptions_attente,
                     &tid, sizeof(tid))) != sizeof(tid))                      &tid, sizeof(tid))) != sizeof(tid))
             {              {
 #               ifndef SEMAPHORES_NOMMES                  if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0)
                 while(sem_wait(&((*s_etat_processus).semaphore_fork)) == -1)  
 #               else  
                 while(sem_wait((*s_etat_processus).semaphore_fork) == -1)  
 #               endif  
                 {                  {
                     if (errno != EINTR)                      (*s_etat_processus).erreur_systeme = d_es_processus;
                     {                      return;
                         (*s_etat_processus).erreur_systeme = d_es_processus;  
                         return;  
                     }  
                 }                  }
   
                 if (longueur_ecriture == -1)                  if (longueur_ecriture == -1)
Line 1764  instruction_swi(struct_processus *s_etat Line 1596  instruction_swi(struct_processus *s_etat
                 nanosleep(&attente, NULL);                  nanosleep(&attente, NULL);
                 INCR_GRANULARITE(attente.tv_nsec);                  INCR_GRANULARITE(attente.tv_nsec);
   
 #               ifndef SEMAPHORES_NOMMES                  if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork))
                 if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0)                          != 0)
                 {  
                     (*s_etat_processus).erreur_systeme = d_es_processus;  
                     return;  
                 }  
 #               else  
                 if (sem_post((*s_etat_processus).semaphore_fork) != 0)  
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_processus;                      (*s_etat_processus).erreur_systeme = d_es_processus;
                     return;                      return;
                 }                  }
 #               endif  
             }              }
   
 #           ifndef SEMAPHORES_NOMMES              if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0)
             while(sem_wait(&((*s_etat_processus).semaphore_fork)) == -1)  
 #           else  
             while(sem_wait((*s_etat_processus).semaphore_fork) == -1)  
 #           endif  
             {              {
                 if (errno != EINTR)                  (*s_etat_processus).erreur_systeme = d_es_processus;
                 {                  return;
                     (*s_etat_processus).erreur_systeme = d_es_processus;  
                     return;  
                 }  
             }              }
         }          }
   
         attente.tv_sec = 0;          attente.tv_sec = 0;
         attente.tv_nsec = GRANULARITE_us * 1000;          attente.tv_nsec = GRANULARITE_us * 1000;
   
 #       ifndef SEMAPHORES_NOMMES          if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0)
         if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0)  
         {          {
             (*s_etat_processus).erreur_systeme = d_es_processus;              (*s_etat_processus).erreur_systeme = d_es_processus;
             return;              return;
         }          }
 #       else  
         if (sem_post((*s_etat_processus).semaphore_fork) != 0)  
         {  
             (*s_etat_processus).erreur_systeme = d_es_processus;  
             return;  
         }  
 #       endif  
   
         while(read_atomic(s_etat_processus,          while(read_atomic(s_etat_processus,
                 (*s_etat_processus).pipe_acquittement,                  (*s_etat_processus).pipe_acquittement,
                 &tampon, sizeof(unsigned char)) != sizeof(unsigned char))                  &tampon, sizeof(unsigned char)) != sizeof(unsigned char))
         {          {
 #           ifndef SEMAPHORES_NOMMES              if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0)
             while(sem_wait(&((*s_etat_processus).semaphore_fork)) == -1)  
 #           else  
             while(sem_wait((*s_etat_processus).semaphore_fork) == -1)  
 #           endif  
             {              {
                 if (errno != EINTR)                  (*s_etat_processus).erreur_systeme = d_es_processus;
                 {                  return;
                     (*s_etat_processus).erreur_systeme = d_es_processus;  
                     return;  
                 }  
             }              }
   
             nanosleep(&attente, NULL);              nanosleep(&attente, NULL);
             INCR_GRANULARITE(attente.tv_nsec);              INCR_GRANULARITE(attente.tv_nsec);
   
 #           ifndef SEMAPHORES_NOMMES              if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0)
             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;                  (*s_etat_processus).erreur_systeme = d_es_processus;
                 return;                  return;
             }              }
         }          }
   
 #       ifndef SEMAPHORES_NOMMES          if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0)
         while(sem_wait(&((*s_etat_processus).semaphore_fork)) == -1)  
 #       else  
         while(sem_wait((*s_etat_processus).semaphore_fork) == -1)  
 #       endif  
         {          {
             if (errno != EINTR)              (*s_etat_processus).erreur_systeme = d_es_processus;
             {              return;
                 (*s_etat_processus).erreur_systeme = d_es_processus;  
                 return;  
             }  
         }          }
   
         if (registre == 0)          if (registre == 0)

Removed from v.1.37  
changed lines
  Added in v.1.38


CVSweb interface <joel.bertrand@systella.fr>