Diff for /rpl/src/interruptions.c between versions 1.165 and 1.166

version 1.165, 2016/03/01 22:12:35 version 1.166, 2016/03/09 17:49:12
Line 109  thread_surveillance_signaux(void *argume Line 109  thread_surveillance_signaux(void *argume
             sem_post(semaphore_signalisation);              sem_post(semaphore_signalisation);
   
             nombre_signaux_envoyes = 0;              nombre_signaux_envoyes = 0;
             sched_yield();  
   
             // Dans un premier temps, on verrouille la queue des signaux              // Dans un premier temps, on verrouille la queue des signaux
             // 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
Line 128  thread_surveillance_signaux(void *argume Line 127  thread_surveillance_signaux(void *argume
   
                 nombre_signaux_envoyes++;                  nombre_signaux_envoyes++;
                 kill(getpid(), SIGALRM);                  kill(getpid(), SIGALRM);
                   sched_yield();
             }              }
   
             sem_post(semaphore_queue_signaux);              sem_post(semaphore_queue_signaux);
Line 160  thread_surveillance_signaux(void *argume Line 160  thread_surveillance_signaux(void *argume
                         nombre_signaux_envoyes++;                          nombre_signaux_envoyes++;
                         pthread_kill((*((struct_thread *)                          pthread_kill((*((struct_thread *)
                                 (*l_element_courant).donnee)).tid, SIGALRM);                                  (*l_element_courant).donnee)).tid, SIGALRM);
                           sched_yield();
                     }                      }
   
                     pthread_mutex_unlock(&((*(*((struct_thread *)                      pthread_mutex_unlock(&((*(*((struct_thread *)
Line 2658  envoi_signal_processus(pid_t pid, enum s Line 2659  envoi_signal_processus(pid_t pid, enum s
         if (msync(s_queue_signaux, sizeof(s_queue_signaux),          if (msync(s_queue_signaux, sizeof(s_queue_signaux),
                 MS_ASYNC | MS_INVALIDATE) != 0)                  MS_ASYNC | MS_INVALIDATE) != 0)
         {          {
               sem_post(semaphore_queue_signaux);
             return(1);              return(1);
         }          }
 #       endif  #       endif
Line 3002  creation_queue_signaux(struct_processus Line 3004  creation_queue_signaux(struct_processus
   
         (*s_queue_signaux).requete_arret = d_faux;          (*s_queue_signaux).requete_arret = d_faux;
   
         if (msync(s_queue_signaux, sizeof(struct_queue_signaux), MS_SYNC))          if (msync(s_queue_signaux, sizeof(struct_queue_signaux),
                   MS_ASYNC | MS_INVALIDATE) != 0)
         {          {
             (*s_etat_processus).erreur_systeme = d_es_processus;              (*s_etat_processus).erreur_systeme = d_es_processus;
             return;              return;
Line 3168  creation_queue_signaux(struct_processus Line 3171  creation_queue_signaux(struct_processus
     }      }
   
     (*s_queue_signaux).controle = getpid();      (*s_queue_signaux).controle = getpid();
   
   #   ifndef IPCS_SYSV
       if (msync(s_queue_signaux, sizeof(s_queue_signaux),
               MS_ASYNC | MS_INVALIDATE) != 0)
       {
           (*s_etat_processus).erreur_systeme = d_es_processus;
           return;
       }
   #           endif
   
     return;      return;
 }  }
   

Removed from v.1.165  
changed lines
  Added in v.1.166


CVSweb interface <joel.bertrand@systella.fr>