Diff for /rpl/src/instructions_s10.c between versions 1.43 and 1.44

version 1.43, 2011/09/14 14:34:28 version 1.44, 2011/09/14 17:55:59
Line 1127  instruction_smphrdecr(struct_processus * Line 1127  instruction_smphrdecr(struct_processus *
             }              }
         }          }
   
 #       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(sem_wait((*((struct_semaphore *) (*s_objet_argument).objet))          while(sem_wait((*((struct_semaphore *) (*s_objet_argument).objet))
                 .semaphore) == -1)                  .semaphore) == -1)
         {          {
             if (errno != EINTR)              if (errno != EINTR)
             {              {
                   pthread_mutex_lock(&((*s_etat_processus).mutex_fork));
                 (*s_etat_processus).erreur_execution = d_ex_semaphore;                  (*s_etat_processus).erreur_execution = d_ex_semaphore;
   
                 if ((*s_etat_processus).profilage == d_vrai)                  if ((*s_etat_processus).profilage == d_vrai)
Line 1158  instruction_smphrdecr(struct_processus * Line 1151  instruction_smphrdecr(struct_processus *
             }              }
         }          }
   
 #       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)              if ((*s_etat_processus).profilage == d_vrai)
             {              {
                 if ((*s_etat_processus).profilage == d_vrai)                  profilage(s_etat_processus, NULL);
                 {  
                     profilage(s_etat_processus, NULL);  
                 }  
   
                 (*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 1281  instruction_smphrtrydecr(struct_processu Line 1267  instruction_smphrtrydecr(struct_processu
             }              }
         }          }
   
 #       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)  
         {          {
               if ((*s_etat_processus).profilage == d_vrai)
               {
                   profilage(s_etat_processus, NULL);
               }
   
             (*s_etat_processus).erreur_systeme = d_es_processus;              (*s_etat_processus).erreur_systeme = d_es_processus;
             return;              return;
         }          }
 #       endif  
   
         (*((integer8 *) (*s_objet_resultat).objet)) = 0;          (*((integer8 *) (*s_objet_resultat).objet)) = 0;
   
Line 1333  instruction_smphrtrydecr(struct_processu Line 1316  instruction_smphrtrydecr(struct_processu
             }              }
         }          }
   
 #       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)              if ((*s_etat_processus).profilage == d_vrai)
             {              {
                 if ((*s_etat_processus).profilage == d_vrai)                  profilage(s_etat_processus, NULL);
                 {  
                     profilage(s_etat_processus, NULL);  
                 }  
   
                 (*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)

Removed from v.1.43  
changed lines
  Added in v.1.44


CVSweb interface <joel.bertrand@systella.fr>