#include #include #include #include #include #include #include #include "dormirUnPeu.h" // Nombre de trains dans le circuit #define NB_TRAINS 3 // Nombre de tours de montagne russe que fait chaque train #define NB_TOURS 5 sem_t zoneE; pthread_mutex_t zoneH = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_t zoneA = PTHREAD_MUTEX_INITIALIZER; void *codeTrain(void *arg){ int nbTours, rc; int numTrain = *(int *)arg; free(arg); printf("Train %d : Je suis dans la zone zoneG\n", numTrain); dormirUnPeu(); // P(zoneE); rc = sem_wait(&zoneE); if (rc != 0) error_at_line(EXIT_FAILURE, errno, __FILE__, __LINE__, "sem_wait"); for (nbTours=0 ; nbTours