Diff for /rpl/src/instructions_s9.c between versions 1.40 and 1.41

version 1.40, 2011/09/20 08:56:24 version 1.41, 2011/09/20 09:51:43
Line 873  instruction_suspend(struct_processus *s_ Line 873  instruction_suspend(struct_processus *s_
         INCR_GRANULARITE(attente.tv_nsec);          INCR_GRANULARITE(attente.tv_nsec);
     }      }
   
     if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)      while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
     {      {
         (*s_etat_processus).erreur_systeme = d_es_processus;          if (errno != EINTR)
         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 1245  instruction_swi(struct_processus *s_etat Line 1248  instruction_swi(struct_processus *s_etat
                     (*s_etat_processus).pipe_nombre_objets_attente,                      (*s_etat_processus).pipe_nombre_objets_attente,
                     &pid, sizeof(pid))) != sizeof(pid))                      &pid, sizeof(pid))) != sizeof(pid))
             {              {
                 if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)                  while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_processus;                      if (errno != EINTR)
                     return;                      {
                           (*s_etat_processus).erreur_systeme = d_es_processus;
                           return;
                       }
                 }                  }
   
                 if (longueur_ecriture == -1)                  if (longueur_ecriture == -1)
Line 1283  instruction_swi(struct_processus *s_etat Line 1289  instruction_swi(struct_processus *s_etat
   
             scrutation_interruptions(s_etat_processus);              scrutation_interruptions(s_etat_processus);
   
             if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)              while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  if (errno != EINTR)
                 return;                  {
                       (*s_etat_processus).erreur_systeme = d_es_processus;
                       return;
                   }
             }              }
         }          }
         else          else
Line 1306  instruction_swi(struct_processus *s_etat Line 1315  instruction_swi(struct_processus *s_etat
                     (*s_etat_processus).pipe_nombre_objets_attente,                      (*s_etat_processus).pipe_nombre_objets_attente,
                     &tid, sizeof(tid))) != sizeof(tid))                      &tid, sizeof(tid))) != sizeof(tid))
             {              {
                 if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)                  while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_processus;                      if (errno != EINTR)
                     return;                      {
                           (*s_etat_processus).erreur_systeme = d_es_processus;
                           return;
                       }
                 }                  }
   
                 if (longueur_ecriture == -1)                  if (longueur_ecriture == -1)
Line 1343  instruction_swi(struct_processus *s_etat Line 1355  instruction_swi(struct_processus *s_etat
   
             scrutation_interruptions(s_etat_processus);              scrutation_interruptions(s_etat_processus);
   
             if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)              while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  if (errno != EINTR)
                 return;                  {
                       (*s_etat_processus).erreur_systeme = d_es_processus;
                       return;
                   }
             }              }
         }          }
   
Line 1366  instruction_swi(struct_processus *s_etat Line 1381  instruction_swi(struct_processus *s_etat
                 &interruption_reduite, sizeof(interruption_reduite)))                  &interruption_reduite, sizeof(interruption_reduite)))
                 != sizeof(interruption_reduite))                  != sizeof(interruption_reduite))
         {          {
             if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)              while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  if (errno != EINTR)
                 return;                  {
                       (*s_etat_processus).erreur_systeme = d_es_processus;
                       return;
                   }
             }              }
   
             if (longueur_ecriture == -1)              if (longueur_ecriture == -1)
Line 1403  instruction_swi(struct_processus *s_etat Line 1421  instruction_swi(struct_processus *s_etat
             scrutation_interruptions(s_etat_processus);              scrutation_interruptions(s_etat_processus);
         }          }
   
         if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)          while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_processus;              if (errno != EINTR)
             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 1426  instruction_swi(struct_processus *s_etat Line 1447  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))
             {              {
                 if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)                  while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_processus;                      if (errno != EINTR)
                     return;                      {
                           (*s_etat_processus).erreur_systeme = d_es_processus;
                           return;
                       }
                 }                  }
   
                 if (longueur_ecriture == -1)                  if (longueur_ecriture == -1)
Line 1472  instruction_swi(struct_processus *s_etat Line 1496  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))
             {              {
                 if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)                  while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_processus;                      if (errno != EINTR)
                     return;                      {
                           (*s_etat_processus).erreur_systeme = d_es_processus;
                           return;
                       }
                 }                  }
   
                 if (longueur_ecriture == -1)                  if (longueur_ecriture == -1)
Line 1507  instruction_swi(struct_processus *s_etat Line 1534  instruction_swi(struct_processus *s_etat
                 }                  }
             }              }
   
             if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)              while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  if (errno != EINTR)
                 return;                  {
                       (*s_etat_processus).erreur_systeme = d_es_processus;
                       return;
                   }
             }              }
         }          }
         else          else
Line 1527  instruction_swi(struct_processus *s_etat Line 1557  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))
             {              {
                 if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)                  while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_processus;                      if (errno != EINTR)
                     return;                      {
                           (*s_etat_processus).erreur_systeme = d_es_processus;
                           return;
                       }
                 }                  }
   
                 if (longueur_ecriture == -1)                  if (longueur_ecriture == -1)
Line 1573  instruction_swi(struct_processus *s_etat Line 1606  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))
             {              {
                 if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)                  while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_processus;                      if (errno != EINTR)
                     return;                      {
                           (*s_etat_processus).erreur_systeme = d_es_processus;
                           return;
                       }
                 }                  }
   
                 if (longueur_ecriture == -1)                  if (longueur_ecriture == -1)
Line 1611  instruction_swi(struct_processus *s_etat Line 1647  instruction_swi(struct_processus *s_etat
                 scrutation_interruptions(s_etat_processus);                  scrutation_interruptions(s_etat_processus);
             }              }
   
             if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)              while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  if (errno != EINTR)
                 return;                  {
                       (*s_etat_processus).erreur_systeme = d_es_processus;
                       return;
                   }
             }              }
         }          }
   
Line 1631  instruction_swi(struct_processus *s_etat Line 1670  instruction_swi(struct_processus *s_etat
                 (*s_etat_processus).pipe_acquittement,                  (*s_etat_processus).pipe_acquittement,
                 &tampon, sizeof(unsigned char)) != sizeof(unsigned char))                  &tampon, sizeof(unsigned char)) != sizeof(unsigned char))
         {          {
             if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)              while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  if (errno != EINTR)
                 return;                  {
                       (*s_etat_processus).erreur_systeme = d_es_processus;
                       return;
                   }
             }              }
   
             nanosleep(&attente, NULL);              nanosleep(&attente, NULL);
Line 1649  instruction_swi(struct_processus *s_etat Line 1691  instruction_swi(struct_processus *s_etat
             scrutation_interruptions(s_etat_processus);              scrutation_interruptions(s_etat_processus);
         }          }
   
         if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)          while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_processus;              if (errno != EINTR)
             return;              {
                   (*s_etat_processus).erreur_systeme = d_es_processus;
                   return;
               }
         }          }
   
         if (registre == 0)          if (registre == 0)

Removed from v.1.40  
changed lines
  Added in v.1.41


CVSweb interface <joel.bertrand@systella.fr>