--- rpl/src/rpl.h 2011/09/18 12:42:50 1.125 +++ rpl/src/rpl.h 2011/09/20 14:36:30 1.130 @@ -122,16 +122,20 @@ ULONG *nopened; ULONG allocated; } sem_t; -# else +# else // IPCS_SYSV typedef struct { int sem; + int alloue; unsigned char *path; pid_t pid; + pthread_t tid; } 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); @@ -239,8 +243,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; @@ -446,7 +454,9 @@ typedef unsigned char t_8_bits; #ifdef SEMAPHORES_NOMMES sem_t *sem_init2(unsigned int valeur, pid_t pid); +sem_t *sem_init3(unsigned int valeur, pid_t pid, pthread_t tid); int sem_destroy2(sem_t *semaphore_p, pid_t pid); +int sem_destroy3(sem_t *semaphore_p, pid_t pid, pthread_t tid); int sem_getvalue2(sem_t *semaphore, int *valeur); sem_t *sem_open2(pid_t pid); @@ -2169,7 +2179,11 @@ typedef struct processus pthread_mutex_t mutex_allocation; // Mutex autorisant les fork() - pthread_mutex_t mutex_fork; + sem_t +# ifdef SEMAPHORES_NOMMES + * +# endif + semaphore_fork; /* Mutexes */