--- rpl/src/rpl.h 2011/09/20 09:51:43 1.129 +++ rpl/src/rpl.h 2011/09/20 14:36:30 1.130 @@ -101,52 +101,51 @@ # include # include -# ifndef __RPLCAS -# 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; -# else // IPCS_SYSV - typedef struct - { - int sem; - int alloue; - unsigned char *path; - pid_t pid; - } sem_t; -# endif +# ifndef IPCS_SYSV +# include +# else +# include +# include -# ifndef SEM_FAILED -# define SEM_FAILED NULL -# endif +# 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; + pthread_t tid; + } sem_t; +# 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); +# 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); # endif # include @@ -455,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); @@ -2178,7 +2179,11 @@ typedef struct processus pthread_mutex_t mutex_allocation; // Mutex autorisant les fork() - sem_t semaphore_fork; + sem_t +# ifdef SEMAPHORES_NOMMES + * +# endif + semaphore_fork; /* Mutexes */