Diff for /rpl/src/interruptions.c between versions 1.77 and 1.78

version 1.77, 2011/09/20 08:56:24 version 1.78, 2011/09/20 09:51:43
Line 324  verrouillage_threads_concurrents(struct_ Line 324  verrouillage_threads_concurrents(struct_
                 == getpid()) && (pthread_equal((*((struct_thread *)                  == getpid()) && (pthread_equal((*((struct_thread *)
                 (*l_element_courant).donnee)).tid, pthread_self()) == 0))                  (*l_element_courant).donnee)).tid, pthread_self()) == 0))
         {          {
             if (sem_wait(&((*(*((struct_thread *) (*l_element_courant)              while(sem_wait(&((*(*((struct_thread *) (*l_element_courant)
                     .donnee)).s_etat_processus).semaphore_fork)) == -1)                      .donnee)).s_etat_processus).semaphore_fork)) == -1)
             {              {
                 (*s_etat_processus).erreur_systeme = d_es_processus;                  (*s_etat_processus).erreur_systeme = d_es_processus;
Line 1407  deverrouillage_gestionnaire_signaux(stru Line 1407  deverrouillage_gestionnaire_signaux(stru
         return;          return;
     }      }
   
     if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)      while(sem_wait(&((*s_etat_processus).semaphore_fork)) != 0)
     {      {
         BUG(1, uprintf("Unlock error !\n"));          BUG(1, uprintf("Unlock error !\n"));
         return;          return;
Line 2398  envoi_signal_processus(pid_t pid, enum s Line 2398  envoi_signal_processus(pid_t pid, enum s
         }          }
   
 #       ifndef SEMAPHORES_NOMMES  #       ifndef SEMAPHORES_NOMMES
             if (sem_wait(&((*s_queue_signaux).semaphore)) != 0)              while(sem_wait(&((*s_queue_signaux).semaphore)) != 0)
 #       else  #       else
             if (sem_wait(semaphore_queue_signaux) != 0)              while(sem_wait(semaphore_queue_signaux) != 0)
 #       endif  #       endif
         {          {
             return(1);              if (errno != EINTR)
               {
                   return(1);
               }
         }          }
   
         (*s_queue_signaux).queue[(*s_queue_signaux).pointeur_ecriture]          (*s_queue_signaux).queue[(*s_queue_signaux).pointeur_ecriture]
Line 2484  envoi_signal_processus(pid_t pid, enum s Line 2487  envoi_signal_processus(pid_t pid, enum s
   
 #       ifndef IPCS_SYSV // POSIX  #       ifndef IPCS_SYSV // POSIX
 #           ifndef SEMAPHORES_NOMMES  #           ifndef SEMAPHORES_NOMMES
                 if (sem_wait(&((*queue).semaphore)) != 0)                  while(sem_wait(&((*queue).semaphore)) != 0)
                 {                  {
                     return(1);                      if (errno != EINTR)
                       {
                           return(1);
                       }
                 }                  }
 #           else  #           else
                 if ((semaphore = sem_open2(pid)) == SEM_FAILED)                  if ((semaphore = sem_open2(pid)) == SEM_FAILED)
Line 2494  envoi_signal_processus(pid_t pid, enum s Line 2500  envoi_signal_processus(pid_t pid, enum s
                     return(1);                      return(1);
                 }                  }
   
                 if (sem_wait(semaphore) != 0)                  while(sem_wait(semaphore) != 0)
                 {                  {
                     sem_close(semaphore);                      if (errno != EINTR)
                     return(1);                      {
                           sem_close(semaphore);
                           return(1);
                       }
                 }                  }
 #           endif  #           endif
 #       else // IPCS_SYSV  #       else // IPCS_SYSV
             if (sem_wait(&((*queue).semaphore)) != 0)              while(sem_wait(&((*queue).semaphore)) != 0)
             {              {
                 return(1);                  if (errno != EINTR)
                   {
                       return(1);
                   }
             }              }
 #       endif  #       endif
   

Removed from v.1.77  
changed lines
  Added in v.1.78


CVSweb interface <joel.bertrand@systella.fr>