--- rpl/src/rpl.h 2011/09/18 12:42:50 1.125 +++ rpl/src/rpl.h 2011/09/20 08:56:24 1.128 @@ -101,47 +101,52 @@ # include # include -# ifndef IPCS_SYSV -# include -# else -# include -# include - -# ifdef OS2 -# define INCL_DOSSEMAPHORES -# define INCL_DOSMEMMGR -# define INCL_DOSERRORS -# include - - typedef struct _OS2SEM - { - HMTX hmtx; - HEV hev; - ULONG shared; - ULONG *cnt; - ULONG *nopened; - ULONG allocated; - } sem_t; +# ifndef __RPLCAS +# ifndef IPCS_SYSV +# include # else - typedef struct - { - int sem; - unsigned char *path; - pid_t pid; - } sem_t; -# endif +# include +# include + +# ifdef OS2 +# define INCL_DOSSEMAPHORES +# define INCL_DOSMEMMGR +# define INCL_DOSERRORS +# include + + typedef struct _OS2SEM + { + HMTX hmtx; + HEV hev; + ULONG shared; + ULONG *cnt; + ULONG *nopened; + ULONG allocated; + } sem_t; +# else // IPCS_SYSV + typedef struct + { + int sem; + int alloue; + unsigned char *path; + pid_t pid; + } sem_t; +# endif -# define SEM_FAILED NULL +# ifndef SEM_FAILED +# define SEM_FAILED NULL +# endif - sem_t *sem_open_SysV(const char *nom, int oflag, ...); - int sem_init_SysV(sem_t *sem, int shared, unsigned int value); - int sem_close_SysV(sem_t *sem); - int sem_wait_SysV(sem_t *sem); - int sem_trywait_SysV(sem_t *sem); - int sem_post_SysV(sem_t *sem); - int sem_getvalue_SysV(sem_t *sem, int *value); - int sem_unlink_SysV(const char *nom); - int sem_destroy_SysV(sem_t *sem); + sem_t *sem_open_SysV(const char *nom, int oflag, ...); + int sem_init_SysV(sem_t *sem, int shared, unsigned int value); + int sem_close_SysV(sem_t *sem); + int sem_wait_SysV(sem_t *sem); + int sem_trywait_SysV(sem_t *sem); + int sem_post_SysV(sem_t *sem); + int sem_getvalue_SysV(sem_t *sem, int *value); + int sem_unlink_SysV(const char *nom); + int sem_destroy_SysV(sem_t *sem); +# endif # endif # include @@ -239,8 +244,12 @@ enum signaux_rpl typedef struct queue_signaux { -# ifndef SEMAPHORES_NOMMES - sem_t semaphore; +# ifndef IPCS_SYSV +# ifndef SEMAPHORES_NOMMES + sem_t semaphore; +# endif +# else + sem_t semaphore; # endif volatile int pointeur_lecture; @@ -731,7 +740,7 @@ pid_t debug_fork(); Erreurs système -------------------------------------------------------------------------------- */ - +#define DEBUG_ERREURS #ifdef DEBUG_ERREURS # ifdef MESSAGES # define __erreur(i) i @@ -2169,7 +2178,7 @@ typedef struct processus pthread_mutex_t mutex_allocation; // Mutex autorisant les fork() - pthread_mutex_t mutex_fork; + sem_t semaphore_fork; /* Mutexes */