Diff for /rpl/src/transliteration.c between versions 1.39 and 1.40

version 1.39, 2011/08/30 14:19:28 version 1.40, 2011/09/14 17:56:00
Line 405  localisation_courante(struct_processus * Line 405  localisation_courante(struct_processus *
              * Récupération de la valeur de retour du processus détaché               * Récupération de la valeur de retour du processus détaché
              */               */
   
 #           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;
Line 417  localisation_courante(struct_processus * Line 413  localisation_courante(struct_processus *
   
             if (waitpid(pid, &status, 0) == -1)              if (waitpid(pid, &status, 0) == -1)
             {              {
 #               ifndef SEMAPHORES_NOMMES                  if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0)
                 if (sem_wait(&((*s_etat_processus).semaphore_fork)) == -1)  
 #               else  
                 if (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;  
                     }  
                 }                  }
   
                 (*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)
             if (sem_wait(&((*s_etat_processus).semaphore_fork)) == -1)  
 #           else  
             if (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;  
                 }  
             }              }
         } while((!WIFEXITED(status)) && (!WIFSIGNALED(status)));          } while((!WIFEXITED(status)) && (!WIFSIGNALED(status)));
   
Line 461  localisation_courante(struct_processus * Line 443  localisation_courante(struct_processus *
   
         tampon[0] = d_code_fin_chaine;          tampon[0] = d_code_fin_chaine;
   
 #       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;
Line 475  localisation_courante(struct_processus * Line 453  localisation_courante(struct_processus *
                 pipes_sortie[0], &(tampon[pointeur]),                  pipes_sortie[0], &(tampon[pointeur]),
                 longueur_lecture)) > 0)                  longueur_lecture)) > 0)
         {          {
 #           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;  
                 }  
             }              }
   
             tampon[pointeur + ios] = d_code_fin_chaine;              tampon[pointeur + ios] = d_code_fin_chaine;
Line 501  localisation_courante(struct_processus * Line 472  localisation_courante(struct_processus *
                 return;                  return;
             }              }
   
 #           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 (strlen(tampon) == 0)          if (strlen(tampon) == 0)
Line 582  localisation_courante(struct_processus * Line 542  localisation_courante(struct_processus *
   
         free(arguments);          free(arguments);
   
 #       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;
Line 608  localisation_courante(struct_processus * Line 564  localisation_courante(struct_processus *
             strcpy((*s_etat_processus).localisation, d_locale);              strcpy((*s_etat_processus).localisation, d_locale);
         }          }
   
 #       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 (close(pipes_erreur[0]) != 0)          if (close(pipes_erreur[0]) != 0)

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


CVSweb interface <joel.bertrand@systella.fr>