Diff for /rpl/src/interruptions.c between versions 1.98 and 1.99

version 1.98, 2012/05/21 17:25:45 version 1.99, 2012/07/04 13:02:49
Line 88  thread_surveillance_signaux(void *argume Line 88  thread_surveillance_signaux(void *argume
         attente.tv_sec = 0;          attente.tv_sec = 0;
         attente.tv_nsec = GRANULARITE_us * 1000;          attente.tv_nsec = GRANULARITE_us * 1000;
   
 #       ifndef SEMAPHORES_NOMMES  #       if defined(SEMAPHORES_NOMMES) || defined(IPCS_SYSV)
         if (sem_wait(&(*s_queue_signaux).signalisation) == 0)          if (sem_wait(&(*s_queue_signaux).signalisation) == 0)
 #       else  #       else
         if(sem_wait(semaphore_signalisation) == 0)          if(sem_wait(semaphore_signalisation) == 0)
Line 99  thread_surveillance_signaux(void *argume Line 99  thread_surveillance_signaux(void *argume
                 break;                  break;
             }              }
   
 #           ifndef SEMAPHORES_NOMMES  #           if defined(SEMAPHORES_NOMMES) || defined(IPCS_SYSV)
             sem_post(&(*s_queue_signaux).signalisation);              sem_post(&(*s_queue_signaux).signalisation);
 #           else  #           else
             sem_post(semaphore_signalisation);              sem_post(semaphore_signalisation);
Line 112  thread_surveillance_signaux(void *argume Line 112  thread_surveillance_signaux(void *argume
             // affectée au processus courant pour vérifier s'il y a quelque              // affectée au processus courant pour vérifier s'il y a quelque
             // chose à traiter.              // chose à traiter.
   
 #           ifndef SEMAPHORES_NOMMES  #           if defined(SEMAPHORES_NOMMES) || defined(IPCS_SYSV)
             sem_wait(&(*s_queue_signaux).semaphore);              sem_wait(&(*s_queue_signaux).semaphore);
 #           else  #           else
             sem_wait(semaphore_queue_signaux);              sem_wait(semaphore_queue_signaux);
Line 125  thread_surveillance_signaux(void *argume Line 125  thread_surveillance_signaux(void *argume
                 raise(SIGALRM);                  raise(SIGALRM);
             }              }
   
 #           ifndef SEMAPHORES_NOMMES  #           if defined(SEMAPHORES_NOMMES) || defined(IPCS_SYSV)
             sem_post(&(*s_queue_signaux).semaphore);              sem_post(&(*s_queue_signaux).semaphore);
 #           else  #           else
             sem_post(semaphore_queue_signaux);              sem_post(semaphore_queue_signaux);
Line 325  retrait_thread(struct_processus *s_etat_ Line 325  retrait_thread(struct_processus *s_etat_
             (*l_element_courant).donnee)).s_etat_processus)              (*l_element_courant).donnee)).s_etat_processus)
             .pointeur_signal_lecture)              .pointeur_signal_lecture)
     {      {
 #       ifndef SEMAPHORES_NOMMES  #       if defined(SEMAPHORES_NOMMES) || defined(IPCS_SYSV)
         sem_wait(&((*s_queue_signaux).signalisation));          sem_wait(&((*s_queue_signaux).signalisation));
 #       else  #       else
         sem_wait(semaphore_signalisation);          sem_wait(semaphore_signalisation);
Line 1622  deverrouillage_gestionnaire_signaux(stru Line 1622  deverrouillage_gestionnaire_signaux(stru
     if (signal_test == SIGTEST) { signal_test = signal; return; }      if (signal_test == SIGTEST) { signal_test = signal; return; }
   
 // Récupération des signaux  // Récupération des signaux
 // - SIGINT (arrêt au clavier)  // - SIGINT  (arrêt au clavier)
 // - SIGTERM (signal d'arrêt en provenance du système)  // - SIGTERM (signal d'arrêt en provenance du système)
   
 void  void
Line 2397  scrutation_interruptions(struct_processu Line 2397  scrutation_interruptions(struct_processu
     // à lire. Les pointeurs d'écriture pointent sur les prochains éléments à      // à lire. Les pointeurs d'écriture pointent sur les prochains éléments à
     // écrire.      // écrire.
   
 #   ifndef SEMAPHORES_NOMMES  #   if defined(SEMAPHORES_NOMMES) || defined(IPCS_SYSV)
         if (sem_trywait(&((*s_queue_signaux).semaphore)) == 0)          if (sem_trywait(&((*s_queue_signaux).semaphore)) == 0)
 #   else  #   else
         if (sem_trywait(semaphore_queue_signaux) == 0)          if (sem_trywait(semaphore_queue_signaux) == 0)
Line 2417  scrutation_interruptions(struct_processu Line 2417  scrutation_interruptions(struct_processu
                     ((*s_queue_signaux).pointeur_lecture + 1)                      ((*s_queue_signaux).pointeur_lecture + 1)
                     % LONGUEUR_QUEUE_SIGNAUX;                      % LONGUEUR_QUEUE_SIGNAUX;
   
 #           ifndef SEMAPHORES_NOMMES  #           if defined(SEMAPHORES_NOMMES) || defined(IPCS_SYSV)
             sem_wait(&((*s_queue_signaux).signalisation));              sem_wait(&((*s_queue_signaux).signalisation));
 #           else  #           else
             sem_wait(semaphore_signalisation);              sem_wait(semaphore_signalisation);
 #           endif  #           endif
         }          }
   
 #       ifndef SEMAPHORES_NOMMES  #       if defined(SEMAPHORES_NOMMES) || defined(IPCS_SYSV)
             sem_post(&((*s_queue_signaux).semaphore));              sem_post(&((*s_queue_signaux).semaphore));
 #       else  #       else
             sem_post(semaphore_queue_signaux);              sem_post(semaphore_queue_signaux);
Line 2448  scrutation_interruptions(struct_processu Line 2448  scrutation_interruptions(struct_processu
                     ((*s_etat_processus).pointeur_signal_lecture + 1)                      ((*s_etat_processus).pointeur_signal_lecture + 1)
                     % LONGUEUR_QUEUE_SIGNAUX;                      % LONGUEUR_QUEUE_SIGNAUX;
   
 #           ifndef SEMAPHORES_NOMMES  #           if defined(SEMAPHORES_NOMMES) || defined(IPCS_SYSV)
             sem_wait(&((*s_queue_signaux).signalisation));              sem_wait(&((*s_queue_signaux).signalisation));
 #           else  #           else
             sem_wait(semaphore_signalisation);              sem_wait(semaphore_signalisation);
Line 2560  envoi_signal_processus(pid_t pid, enum s Line 2560  envoi_signal_processus(pid_t pid, enum s
             return(1);              return(1);
         }          }
   
 #       ifndef SEMAPHORES_NOMMES  #       if defined(SEMAPHORES_NOMMES) || defined(IPCS_SYSV)
             while(sem_wait(&((*s_queue_signaux).semaphore)) != 0)              while(sem_wait(&((*s_queue_signaux).semaphore)) != 0)
 #       else  #       else
             while(sem_wait(semaphore_queue_signaux) != 0)              while(sem_wait(semaphore_queue_signaux) != 0)
Line 2581  envoi_signal_processus(pid_t pid, enum s Line 2581  envoi_signal_processus(pid_t pid, enum s
                 ((*s_queue_signaux).pointeur_ecriture + 1)                  ((*s_queue_signaux).pointeur_ecriture + 1)
                 % LONGUEUR_QUEUE_SIGNAUX;                  % LONGUEUR_QUEUE_SIGNAUX;
   
 #       ifndef SEMAPHORES_NOMMES  #       if defined(SEMAPHORES_NOMMES) || defined(IPCS_SYSV)
             if (sem_post(&((*s_queue_signaux).semaphore)) != 0)              if (sem_post(&((*s_queue_signaux).semaphore)) != 0)
 #       else  #       else
             if (sem_post(semaphore_queue_signaux) != 0)              if (sem_post(semaphore_queue_signaux) != 0)
Line 2590  envoi_signal_processus(pid_t pid, enum s Line 2590  envoi_signal_processus(pid_t pid, enum s
             return(1);              return(1);
         }          }
   
 #       ifndef SEMAPHORES_NOMMES  #       if defined(SEMAPHORES_NOMMES) || defined(IPCS_SYSV)
             if (sem_post(&((*s_queue_signaux).signalisation)) != 0)              if (sem_post(&((*s_queue_signaux).signalisation)) != 0)
 #       else  #       else
             if (sem_post(semaphore_signalisation) != 0)              if (sem_post(semaphore_signalisation) != 0)
Line 2843  envoi_signal_thread(pthread_t tid, enum Line 2843  envoi_signal_thread(pthread_t tid, enum
         return(1);          return(1);
     }      }
   
 #   ifndef SEMAPHORES_NOMMES  #   if defined(SEMAPHORES_NOMMES) || defined(IPCS_SYSV)
     if (sem_post(&((*s_queue_signaux).signalisation)) != 0)      if (sem_post(&((*s_queue_signaux).signalisation)) != 0)
     {      {
         return(1);          return(1);
Line 2871  envoi_signal_contexte(struct_processus * Line 2871  envoi_signal_contexte(struct_processus *
             % LONGUEUR_QUEUE_SIGNAUX;              % LONGUEUR_QUEUE_SIGNAUX;
     pthread_mutex_unlock(&mutex_interruptions);      pthread_mutex_unlock(&mutex_interruptions);
   
 #   ifndef SEMAPHORES_NOMMES  #   if defined(SEMAPHORES_NOMMES) || defined(IPCS_SYSV)
     if (sem_post(&((*s_queue_signaux).signalisation)) != 0)      if (sem_post(&((*s_queue_signaux).signalisation)) != 0)
     {      {
         return(1);          return(1);
Line 3142  liberation_queue_signaux(struct_processu Line 3142  liberation_queue_signaux(struct_processu
   
     (*s_queue_signaux).requete_arret = d_vrai;      (*s_queue_signaux).requete_arret = d_vrai;
   
 #   ifndef SEMAPHORES_NOMMES  #   if defined(SEMAPHORES_NOMMES) || defined(IPCS_SYSV)
     sem_post(&((*s_queue_signaux).signalisation));      sem_post(&((*s_queue_signaux).signalisation));
 #   else  #   else
     sem_post(semaphore_signalisation);      sem_post(semaphore_signalisation);
Line 3201  destruction_queue_signaux(struct_process Line 3201  destruction_queue_signaux(struct_process
         unsigned char       *nom;          unsigned char       *nom;
 #   endif  #   endif
   
       // Incrémenter le sémaphore pour être sûr de le débloquer.
   
       (*s_queue_signaux).requete_arret = d_vrai;
   
   #   if defined(SEMAPHORES_NOMMES) || defined(IPCS_SYSV)
       sem_post(&((*s_queue_signaux).signalisation));
   #   else
       sem_post(semaphore_signalisation);
   #   endif
   
       pthread_join((*s_queue_signaux).thread_signaux, NULL);
   
 #   ifdef IPCS_SYSV // SystemV  #   ifdef IPCS_SYSV // SystemV
 #       ifndef OS2  #       ifndef OS2
             // Il faut commencer par éliminer le sémaphore.              // Il faut commencer par éliminer le sémaphore.

Removed from v.1.98  
changed lines
  Added in v.1.99


CVSweb interface <joel.bertrand@systella.fr>