Diff for /rpl/src/rpl.c between versions 1.84 and 1.87

version 1.84, 2011/09/14 17:56:00 version 1.87, 2011/09/18 12:42:50
Line 105  rplinit(int argc, char *argv[], unsigned Line 105  rplinit(int argc, char *argv[], unsigned
     volatile unsigned char              traitement_fichier_temporaire;      volatile unsigned char              traitement_fichier_temporaire;
   
     errno = 0;      errno = 0;
       s_queue_signaux = NULL;
     pid_processus_pere = getpid();      pid_processus_pere = getpid();
   
 #   ifdef DEBUG_MEMOIRE  #   ifdef DEBUG_MEMOIRE
Line 114  rplinit(int argc, char *argv[], unsigned Line 115  rplinit(int argc, char *argv[], unsigned
     setvbuf(stdout, NULL, _IOLBF, 0);      setvbuf(stdout, NULL, _IOLBF, 0);
     setvbuf(stderr, NULL, _IOLBF, 0);      setvbuf(stderr, NULL, _IOLBF, 0);
   
     // mutex_liste_thread est dévérouillé par défaut.  
     // mutex_gestionnaires_signaux et mutex_gestionnaires_signaux_atomique  
     // sont verrouillés par défaut.  
   
     pthread_mutex_lock(&mutex_gestionnaires_signaux_atomique);  
   
 #   ifndef SEMAPHORES_NOMMES  #   ifndef SEMAPHORES_NOMMES
     sem_init(&semaphore_gestionnaires_signaux, 0, 0);      sem_init(&semaphore_gestionnaires_signaux, 0, 0);
 #   else  #   else
     semaphore_gestionnaires_signaux = sem_init2(0, sem_gestionnaires_signaux);      semaphore_gestionnaires_signaux = sem_init2(0, getpid());
           
     if (semaphore_gestionnaires_signaux == SEM_FAILED)      if (semaphore_gestionnaires_signaux == SEM_FAILED)
     {      {
Line 605  rplinit(int argc, char *argv[], unsigned Line 600  rplinit(int argc, char *argv[], unsigned
         option_t = d_faux;          option_t = d_faux;
         option_v = d_faux;          option_v = d_faux;
   
           // Lorsque le programme est appelé depuis un shebang, argv[0] contient
           // le chemin du programme et argv[1] tous les arguments.
           // argv[2] contient quant à lui le nom du script RPL/2.
           //
           // Exemple :
           // argv[0] : /usr/local/bin/rpl
           // argv[1] : -csdp -t 800
           // argv[2] : ./on_exit.rpl
   
         while((--argc) > 0)          while((--argc) > 0)
         {          {
             if ((*(++argv))[0] == '-')              if ((*(++argv))[0] == '-')
Line 1400  rplinit(int argc, char *argv[], unsigned Line 1404  rplinit(int argc, char *argv[], unsigned
                             break;                              break;
                         }                          }
   
                           case '-':
                           case ' ':
                           {
                               break;
                           }
   
                         default :                          default :
                         {                          {
                             if ((*s_etat_processus).langue == 'F')                              if ((*s_etat_processus).langue == 'F')
Line 2955  rplinit(int argc, char *argv[], unsigned Line 2965  rplinit(int argc, char *argv[], unsigned
                         }                          }
   
                         nanosleep(&attente, NULL);                          nanosleep(&attente, NULL);
                           scrutation_interruptions(s_etat_processus);
                         pthread_mutex_lock(&((*s_etat_processus).mutex));                          pthread_mutex_lock(&((*s_etat_processus).mutex));
                     }                      }
   
Line 3493  rplinit(int argc, char *argv[], unsigned Line 3504  rplinit(int argc, char *argv[], unsigned
     sem_destroy(&semaphore_gestionnaires_signaux);      sem_destroy(&semaphore_gestionnaires_signaux);
 #   else  #   else
     sem_post(semaphore_gestionnaires_signaux);      sem_post(semaphore_gestionnaires_signaux);
     sem_destroy2(semaphore_gestionnaires_signaux, sem_gestionnaires_signaux);      sem_destroy2(semaphore_gestionnaires_signaux, getpid());
 #   endif  #   endif
   
     destruction_queue_signaux(s_etat_processus);      destruction_queue_signaux(s_etat_processus);

Removed from v.1.84  
changed lines
  Added in v.1.87


CVSweb interface <joel.bertrand@systella.fr>