#include <pthread.h>
#include <semaphore.h>
-#define N 5
+#define N 10
// nombre de philosophes
#define G (i + 1) % N
// fourchette gauche du philosophe i
#define penser 0
#define faim 1
#define manger 2
-static int phiState[N] = { penser };
+static int phiState[N];
sem_t mutex;
sem_t semPhil[N];
int main()
{
- int i, NumPhi[N] = { 0, 1, 2, 3, 4 };
+ int i, NumPhi[N];
+ for (i = 0; i < N; i++)
+ NumPhi[i] = i;
+ for (i = 0; i < N; i++)
+ phiState[i] = penser;
pthread_t th[N];
sem_init(&mutex, 0, 1);
- for (i = 0; i < N; i++) {
+ for (i = 0; i < N; i++)
sem_init(&semPhil[i], 0, 1);
- }
// création des N philosophes
for (i = 0; i < N; i++)
pthread_create(&th[i], NULL, philosophe, &NumPhi[i]);