Diff for /rpl/src/instructions_s1.c between versions 1.38 and 1.39

version 1.38, 2011/09/15 17:51:43 version 1.39, 2011/09/20 08:56:23
Line 3858  instruction_syseval(struct_processus *s_ Line 3858  instruction_syseval(struct_processus *s_
                     longueur_ecriture = strlen((unsigned char *)                      longueur_ecriture = strlen((unsigned char *)
                             (*(*l_element_courant).donnee).objet);                              (*(*l_element_courant).donnee).objet);
   
                     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;
Line 3870  instruction_syseval(struct_processus *s_ Line 3869  instruction_syseval(struct_processus *s_
                             (*(*l_element_courant).donnee).objet,                              (*(*l_element_courant).donnee).objet,
                             longueur_ecriture) != longueur_ecriture)                              longueur_ecriture) != longueur_ecriture)
                     {                      {
                         while(pthread_mutex_lock(&((*s_etat_processus)                          while(sem_wait(&((*s_etat_processus)
                                 .mutex_fork)) != 0)                                  .semaphore_fork)) != 0)
                         {                          {
                             (*s_etat_processus).erreur_systeme =                              (*s_etat_processus).erreur_systeme =
                                     d_es_processus;                                      d_es_processus;
Line 3884  instruction_syseval(struct_processus *s_ Line 3883  instruction_syseval(struct_processus *s_
                             return;                              return;
                         }                          }
   
                         if (pthread_mutex_unlock(&((*s_etat_processus)                          if (sem_post(&((*s_etat_processus)
                                 .mutex_fork)) != 0)                                  .semaphore_fork)) != 0)
                         {                          {
                             (*s_etat_processus).erreur_systeme = d_es_processus;                              (*s_etat_processus).erreur_systeme = d_es_processus;
                             return;                              return;
Line 3895  instruction_syseval(struct_processus *s_ Line 3894  instruction_syseval(struct_processus *s_
                     while(write_atomic(s_etat_processus,                      while(write_atomic(s_etat_processus,
                             pipes_entree[1], "\n", 1) != 1)                              pipes_entree[1], "\n", 1) != 1)
                     {                      {
                         if (pthread_mutex_lock(&((*s_etat_processus)                          if (sem_wait(&((*s_etat_processus)
                                 .mutex_fork)) != 0)                                  .semaphore_fork)) != 0)
                         {                          {
                             (*s_etat_processus).erreur_systeme =                              (*s_etat_processus).erreur_systeme =
                                     d_es_processus;                                      d_es_processus;
Line 3909  instruction_syseval(struct_processus *s_ Line 3908  instruction_syseval(struct_processus *s_
                             return;                              return;
                         }                          }
   
                         if (pthread_mutex_unlock(&((*s_etat_processus)                          if (sem_post(&((*s_etat_processus)
                                 .mutex_fork)) != 0)                                  .semaphore_fork)) != 0)
                         {                          {
                             (*s_etat_processus).erreur_systeme = d_es_processus;                              (*s_etat_processus).erreur_systeme = d_es_processus;
                             return;                              return;
                         }                          }
                     }                      }
   
                     if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork))                      if (sem_wait(&((*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;
Line 3945  instruction_syseval(struct_processus *s_ Line 3943  instruction_syseval(struct_processus *s_
                  * Récupération de la valeur de retour du processus détaché                   * Récupération de la valeur de retour du processus détaché
                  */                   */
   
                 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;
Line 3954  instruction_syseval(struct_processus *s_ Line 3951  instruction_syseval(struct_processus *s_
   
                 if (waitpid(pid, &status, 0) == -1)                  if (waitpid(pid, &status, 0) == -1)
                 {                  {
                     if (pthread_mutex_lock(&((*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;
Line 3965  instruction_syseval(struct_processus *s_ Line 3961  instruction_syseval(struct_processus *s_
                     return;                      return;
                 }                  }
   
                 if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0)                  if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_processus;                      (*s_etat_processus).erreur_systeme = d_es_processus;
                     return;                      return;
Line 3983  instruction_syseval(struct_processus *s_ Line 3979  instruction_syseval(struct_processus *s_
                 return;                  return;
             }              }
   
             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;
Line 3993  instruction_syseval(struct_processus *s_ Line 3989  instruction_syseval(struct_processus *s_
                     pipes_sortie[0], &(tampon[pointeur]),                      pipes_sortie[0], &(tampon[pointeur]),
                     longueur_lecture)) > 0)                      longueur_lecture)) > 0)
             {              {
                 while(pthread_mutex_lock(&((*s_etat_processus).mutex_fork))                  while(sem_wait(&((*s_etat_processus).semaphore_fork))
                         != 0)                          != 0)
                 {                  {
                     (*s_etat_processus).erreur_systeme = d_es_processus;                      (*s_etat_processus).erreur_systeme = d_es_processus;
Line 4013  instruction_syseval(struct_processus *s_ Line 4009  instruction_syseval(struct_processus *s_
                     return;                      return;
                 }                  }
   
                 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;
Line 4021  instruction_syseval(struct_processus *s_ Line 4017  instruction_syseval(struct_processus *s_
                 }                  }
             }              }
   
             if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0)              if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  (*s_etat_processus).erreur_systeme = d_es_processus;
                 return;                  return;
Line 4166  instruction_syseval(struct_processus *s_ Line 4162  instruction_syseval(struct_processus *s_
             return;              return;
         }          }
     
         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;
Line 4183  instruction_syseval(struct_processus *s_ Line 4179  instruction_syseval(struct_processus *s_
                 &((*s_etat_processus).l_base_pile), s_objet_resultat)                  &((*s_etat_processus).l_base_pile), s_objet_resultat)
                 == d_erreur)                  == d_erreur)
         {          {
             if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0)              if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  (*s_etat_processus).erreur_systeme = d_es_processus;
                 return;                  return;
Line 4199  instruction_syseval(struct_processus *s_ Line 4195  instruction_syseval(struct_processus *s_
             return;              return;
         }          }
   
         if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0)          if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_processus;              (*s_etat_processus).erreur_systeme = d_es_processus;
             return;              return;

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


CVSweb interface <joel.bertrand@systella.fr>