Diff for /rpl/src/interruptions.c between versions 1.170 and 1.175

version 1.170, 2016/03/17 16:31:36 version 1.175, 2016/03/24 09:38:29
Line 2780  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
                 if (msync(queue, sizeof(queue), MS_ASYNC | MS_INVALIDATE) != 0)                  if (msync(queue, sizeof(queue), MS_ASYNC | MS_INVALIDATE) != 0)
                 {                  {
                     munmap(queue, sizeof(struct_queue_signaux));                      munmap(queue, sizeof(struct_queue_signaux));
                       close(segment);
                     return(1);                      return(1);
                 }                  }
   
Line 2795  envoi_signal_processus(pid_t pid, enum s Line 2795  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 2805  envoi_signal_processus(pid_t pid, enum s Line 2807  envoi_signal_processus(pid_t pid, enum s
                     // Pendant de DosGetNamedSHaredMem()                      // Pendant de DosGetNamedSHaredMem()
 #               endif  #               endif
 #           endif  #           endif
   
             return(1);              return(1);
         }          }
   
Line 2816  envoi_signal_processus(pid_t pid, enum s Line 2817  envoi_signal_processus(pid_t pid, enum s
                 if (msync(queue, sizeof(queue), MS_ASYNC | MS_INVALIDATE) != 0)                  if (msync(queue, sizeof(queue), MS_ASYNC | MS_INVALIDATE) != 0)
                 {                  {
                     munmap(queue, sizeof(struct_queue_signaux));                      munmap(queue, sizeof(struct_queue_signaux));
                       close(segment);
                     return(1);                      return(1);
                 }                  }
   
Line 2824  envoi_signal_processus(pid_t pid, enum s Line 2826  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 2848  envoi_signal_processus(pid_t pid, enum s Line 2852  envoi_signal_processus(pid_t pid, enum s
                             != 0)                              != 0)
                     {                      {
                         munmap(queue, sizeof(struct_queue_signaux));                          munmap(queue, sizeof(struct_queue_signaux));
                           close(segment);
                         return(1);                          return(1);
                     }                      }
   
                     if (munmap(queue, sizeof(struct_queue_signaux)) != 0)                      if (munmap(queue, sizeof(struct_queue_signaux)) != 0)
                     {                      {
                         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 2885  envoi_signal_processus(pid_t pid, enum s Line 2892  envoi_signal_processus(pid_t pid, enum s
                 if (msync(queue, sizeof(queue), MS_ASYNC | MS_INVALIDATE) != 0)                  if (msync(queue, sizeof(queue), MS_ASYNC | MS_INVALIDATE) != 0)
                 {                  {
                     munmap(queue, sizeof(struct_queue_signaux));                      munmap(queue, sizeof(struct_queue_signaux));
                       close(segment);
                     return(1);                      return(1);
                 }                  }
   
Line 2893  envoi_signal_processus(pid_t pid, enum s Line 2901  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 2915  envoi_signal_processus(pid_t pid, enum s Line 2925  envoi_signal_processus(pid_t pid, enum s
                 if (msync(queue, sizeof(queue), MS_ASYNC | MS_INVALIDATE) != 0)                  if (msync(queue, sizeof(queue), MS_ASYNC | MS_INVALIDATE) != 0)
                 {                  {
                     munmap(queue, sizeof(struct_queue_signaux));                      munmap(queue, sizeof(struct_queue_signaux));
                       close(segment);
                     return(1);                      return(1);
                 }                  }
   
Line 2923  envoi_signal_processus(pid_t pid, enum s Line 2934  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 2944  envoi_signal_processus(pid_t pid, enum s Line 2957  envoi_signal_processus(pid_t pid, enum s
                 if (msync(queue, sizeof(queue), MS_ASYNC | MS_INVALIDATE) != 0)                  if (msync(queue, sizeof(queue), MS_ASYNC | MS_INVALIDATE) != 0)
                 {                  {
                     munmap(queue, sizeof(struct_queue_signaux));                      munmap(queue, sizeof(struct_queue_signaux));
                       close(segment);
                     return(1);                      return(1);
                 }                  }
   
Line 2952  envoi_signal_processus(pid_t pid, enum s Line 2966  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 2973  envoi_signal_processus(pid_t pid, enum s Line 2989  envoi_signal_processus(pid_t pid, enum s
                 if (msync(queue, sizeof(queue), MS_ASYNC | MS_INVALIDATE) != 0)                  if (msync(queue, sizeof(queue), MS_ASYNC | MS_INVALIDATE) != 0)
                 {                  {
                     munmap(queue, sizeof(struct_queue_signaux));                      munmap(queue, sizeof(struct_queue_signaux));
                       close(segment);
                     return(1);                      return(1);
                 }                  }
   
Line 2981  envoi_signal_processus(pid_t pid, enum s Line 2998  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 2999  envoi_signal_processus(pid_t pid, enum s Line 3018  envoi_signal_processus(pid_t pid, enum s
             if (msync(queue, sizeof(queue), MS_ASYNC | MS_INVALIDATE) != 0)              if (msync(queue, sizeof(queue), MS_ASYNC | MS_INVALIDATE) != 0)
             {              {
                 munmap(queue, sizeof(struct_queue_signaux));                  munmap(queue, sizeof(struct_queue_signaux));
                   close(segment);
                 return(1);                  return(1);
             }              }
   
Line 3007  envoi_signal_processus(pid_t pid, enum s Line 3027  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 3145  creation_queue_signaux(struct_processus Line 3167  creation_queue_signaux(struct_processus
         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)
Line 3379  creation_queue_signaux(struct_processus Line 3422  creation_queue_signaux(struct_processus
     }      }
 #           endif  #           endif
   
       if (lancement_thread_signaux(s_etat_processus) == d_erreur)
       {
           (*s_etat_processus).erreur_systeme = d_es_processus;
           return;
       }
   
     return;      return;
 }  }
   

Removed from v.1.170  
changed lines
  Added in v.1.175


CVSweb interface <joel.bertrand@systella.fr>