Diff for /rpl/src/semaphores.c between versions 1.11 and 1.22

version 1.11, 2010/08/18 12:56:55 version 1.22, 2011/06/21 15:26:35
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.18    RPL/2 (R) version 4.1.0.prerelease.2
   Copyright (C) 1989-2010 Dr. BERTRAND Joël    Copyright (C) 1989-2011 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 107  sem_getvalue2(sem_t *semaphore, int *val Line 107  sem_getvalue2(sem_t *semaphore, int *val
   
 #endif  #endif
   
 #ifdef SEMAPHORES_SYSV  #ifdef IPCS_SYSV
   
 /*  /*
 ================================================================================  ================================================================================
Line 125  sem_getvalue2(sem_t *semaphore, int *val Line 125  sem_getvalue2(sem_t *semaphore, int *val
     extern unsigned char *chemin_semaphores_SysV;      extern unsigned char *chemin_semaphores_SysV;
 #else  #else
     unsigned char racine_semaphores_OS2[] = "\\SEM32\\";      unsigned char racine_semaphores_OS2[] = "\\SEM32\\";
     unsigned char racine_memoire_OS2[] = "\\SHAREDMEM\\";      unsigned char racine_memoire_OS2[] = "\\SHAREMEM\\";
 #endif  
   
 #ifndef UNION_SEMUN  
 union semun  
 {  
     int                 val;  
     struct semid_ds     *buf;  
     unsigned short      *array;  
     struct seminfo      *__buf;  
 };  
 #endif  #endif
   
 int  int
Line 162  sem_init_SysV(sem_t *semaphore, int shar Line 152  sem_init_SysV(sem_t *semaphore, int shar
   
     if ((*semaphore).sem == -1)      if ((*semaphore).sem == -1)
     {      {
 perror("sem_init");  
         errno = EINVAL;          errno = EINVAL;
         return(-1);          return(-1);
     }      }
Line 242  sem_destroy_SysV(sem_t *semaphore) Line 231  sem_destroy_SysV(sem_t *semaphore)
         return(0);          return(0);
     }      }
   
     if (semctl((*semaphore).sem, IPC_RMID, 0) == -1)      if (semctl((*semaphore).sem, 0, IPC_RMID) == -1)
     {      {
         return(EINVAL);          return(EINVAL);
     }      }
Line 310  sem_wait_SysV(sem_t *semaphore) Line 299  sem_wait_SysV(sem_t *semaphore)
     {      {
         if (errno != EINTR)          if (errno != EINTR)
         {          {
 perror("sem_wait");  
             errno = EINVAL;              errno = EINVAL;
             return(-1);              return(-1);
         }          }
Line 865  sem_unlink_SysV(const char *nom) Line 853  sem_unlink_SysV(const char *nom)
     }      }
   
     sprintf(nom_absolu, "%s%s", chemin_semaphores_SysV, nom);      sprintf(nom_absolu, "%s%s", chemin_semaphores_SysV, nom);
     semctl(semget(ftok(nom_absolu, 1), 0, 0), IPC_RMID, 0);      semctl(semget(ftok(nom_absolu, 1), 0, 0), 0, IPC_RMID);
   
     if (unlink(nom_absolu) == -1)      if (unlink(nom_absolu) == -1)
     {      {

Removed from v.1.11  
changed lines
  Added in v.1.22


CVSweb interface <joel.bertrand@systella.fr>