X-Git-Url: https://git.piment-noir.org/?p=TD_SE.git;a=blobdiff_plain;f=philosophe-famine%2Fphilosophe.c;fp=philosophe-famine%2Fphilosophe.c;h=eb27f43c3a1c41f2e7e6eef78b6d2a7944e53e8f;hp=bd7ea4e5266a9716d345bfddee377f70a58020a1;hb=5bb90b8301bcac76c05099aeaf291ebda07adf00;hpb=38c82fd1a6fbef93edfb5c4e6326b9d5f0775dd9 diff --git a/philosophe-famine/philosophe.c b/philosophe-famine/philosophe.c index bd7ea4e..eb27f43 100644 --- a/philosophe-famine/philosophe.c +++ b/philosophe-famine/philosophe.c @@ -4,7 +4,7 @@ #include #include -#define N 5 +#define N 10 // nombre de philosophes #define G (i + 1) % N // fourchette gauche du philosophe i @@ -14,7 +14,7 @@ #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]; @@ -61,12 +61,15 @@ static void *philosophe(void *num) 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]);