Diff for /rpl/src/interruptions.c between versions 1.171 and 1.174

version 1.171, 2016/03/18 12:43:48 version 1.174, 2016/03/22 17:12:44
Line 1524  lancement_thread_signaux(struct_processu Line 1524  lancement_thread_signaux(struct_processu
   
     if (pipe((*s_etat_processus).pipe_signaux) != 0)      if (pipe((*s_etat_processus).pipe_signaux) != 0)
     {      {
 perror("pipe");  
         (*s_etat_processus).erreur_systeme = d_es_processus;          (*s_etat_processus).erreur_systeme = d_es_processus;
         return(d_erreur);          return(d_erreur);
     }      }
Line 2781  envoi_signal_processus(pid_t pid, enum s Line 2780  envoi_signal_processus(pid_t pid, enum s
         // À ce moment, le segment de mémoire partagée est projeté          // À ce moment, le segment de mémoire partagée est projeté
         // dans l'espace du processus.          // dans l'espace du processus.
   
   
         if ((semaphore = sem_open2(pid, SEM_QUEUE)) == SEM_FAILED)          if ((semaphore = sem_open2(pid, SEM_QUEUE)) == SEM_FAILED)
         {          {
 #           ifndef IPCS_SYSV // POSIX  #           ifndef IPCS_SYSV // POSIX
Line 3008  envoi_signal_processus(pid_t pid, enum s Line 3006  envoi_signal_processus(pid_t pid, enum s
                 close(segment);                  close(segment);
                 return(1);                  return(1);
             }              }
   
               close(segment);
   
 #       else // IPCS_SYSV  #       else // IPCS_SYSV
 #           ifndef OS2 // SysV  #           ifndef OS2 // SysV
                 if (shmdt(queue) != 0)                  if (shmdt(queue) != 0)
Line 3143  creation_queue_signaux(struct_processus Line 3144  creation_queue_signaux(struct_processus
             return;              return;
         }          }
   
         if ((f_queue_signaux = shm_open(nom, O_RDWR | O_CREAT /* | O_EXCL*/,          if ((f_queue_signaux = shm_open(nom, O_RDWR | O_CREAT | O_EXCL,
                 S_IRUSR | S_IWUSR)) == -1)                  S_IRUSR | S_IWUSR)) == -1)
         {          {
             sys_free(nom);              if (errno != EEXIST)
             (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;              {
             return;                  sys_free(nom);
                   (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                   return;
               }
   
               if ((*s_etat_processus).langue == 'F')
               {
                   printf("+++Attention : Le segment de mémoire %s préexiste !\n",
                           nom);
               }
               else
               {
                   printf("+++Warning: %s memory segment preexists!\n", nom);
               }
   
               if ((f_queue_signaux = shm_open(nom, O_RDWR | O_CREAT | O_TRUNC,
                       S_IRUSR | S_IWUSR)) == -1)
               {
                   sys_free(nom);
                   (*s_etat_processus).erreur_systeme = d_es_allocation_memoire;
                   return;
               }
         }          }
   
         if (ftruncate(f_queue_signaux, sizeof(struct_queue_signaux)) == -1)          if (ftruncate(f_queue_signaux, sizeof(struct_queue_signaux)) == -1)

Removed from v.1.171  
changed lines
  Added in v.1.174


CVSweb interface <joel.bertrand@systella.fr>