version 1.124, 2011/09/16 14:42:03
|
version 1.125, 2011/09/18 12:42:50
|
Line 239 enum signaux_rpl
|
Line 239 enum signaux_rpl
|
|
|
typedef struct queue_signaux |
typedef struct queue_signaux |
{ |
{ |
sem_t |
# ifndef SEMAPHORES_NOMMES |
# ifdef SEMAPHORES_NOMMES |
sem_t semaphore; |
* |
|
# endif |
# endif |
semaphore; |
|
|
|
volatile int pointeur_lecture; |
volatile int pointeur_lecture; |
volatile int pointeur_ecriture; |
volatile int pointeur_ecriture; |
Line 259 typedef struct queue_signaux
|
Line 257 typedef struct queue_signaux
|
# ifndef MAIN_RPL |
# ifndef MAIN_RPL |
extern struct_queue_signaux *s_queue_signaux; |
extern struct_queue_signaux *s_queue_signaux; |
extern int f_queue_signaux; |
extern int f_queue_signaux; |
|
# ifdef SEMAPHORES_NOMMES |
|
extern sem_t *semaphore_queue_signaux; |
|
# endif |
# else |
# else |
struct_queue_signaux *s_queue_signaux; |
struct_queue_signaux *s_queue_signaux; |
int f_queue_signaux; |
int f_queue_signaux; |
|
# ifdef SEMAPHORES_NOMMES |
|
sem_t *semaphore_queue_signaux; |
|
# endif |
# endif |
# endif |
#endif |
#endif |
|
|
Line 428 typedef unsigned char t_8_bits;
|
Line 432 typedef unsigned char t_8_bits;
|
|
|
pthread_mutex_t mutex_liste_threads = |
pthread_mutex_t mutex_liste_threads = |
PTHREAD_MUTEX_INITIALIZER; |
PTHREAD_MUTEX_INITIALIZER; |
pthread_mutex_t mutex_gestiionnaires_signaux = |
pthread_mutex_t mutex_gestionnaires_signaux = |
PTHREAD_MUTEX_INITIALIZER; |
PTHREAD_MUTEX_INITIALIZER; |
pthread_mutex_t mutex_gestionnaires_signaux_atomique = |
pthread_mutex_t mutex_gestionnaires_signaux_atomique = |
PTHREAD_MUTEX_INITIALIZER; |
PTHREAD_MUTEX_INITIALIZER; |
Line 441 typedef unsigned char t_8_bits;
|
Line 445 typedef unsigned char t_8_bits;
|
#endif |
#endif |
|
|
#ifdef SEMAPHORES_NOMMES |
#ifdef SEMAPHORES_NOMMES |
enum t_semaphore { sem_liste_threads = 0, |
sem_t *sem_init2(unsigned int valeur, pid_t pid); |
sem_gestionnaires_signaux = 1, |
int sem_destroy2(sem_t *semaphore_p, pid_t pid); |
sem_gestionnaires_signaux_atomique = 2, |
|
sem_fork = 3 }; |
|
|
|
sem_t *sem_init2(unsigned int valeur, enum t_semaphore semaphore); |
|
int sem_destroy2(sem_t *semaphore_p, enum t_semaphore semaphore); |
|
int sem_getvalue2(sem_t *semaphore, int *valeur); |
int sem_getvalue2(sem_t *semaphore, int *valeur); |
|
sem_t *sem_open2(pid_t pid); |
|
|
|
// Le mutex est là uniquement pour pouvoir émuler le comportement |
|
// de sem_getvalue() sur un système comme MacOS X qui ne possède pas |
|
// cette fonction. |
|
|
#define sem_getvalue(semaphore, value) sem_getvalue2(semaphore, value) |
#define sem_getvalue(semaphore, value) sem_getvalue2(semaphore, value) |
#define sem_post(semaphore) \ |
#define sem_post(semaphore) \ |