Make some array initializations variable.
[TD_SE.git] / philosophe-famine / philosophe.c
index 95384c98f73eb83097a4cffcff99e520b96f8033..eb27f43c3a1c41f2e7e6eef78b6d2a7944e53e8f 100644 (file)
@@ -4,7 +4,7 @@
 #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];
 
-void test(int i)
+static void test(int i)
 {
        if (phiState[i] == faim && phiState[G] != manger
            && phiState[D] != manger) {
@@ -28,7 +28,7 @@ void test(int i)
        }
 }
 
-void *philosophe(void *num)
+static void *philosophe(void *num)
 {
        int i = *(int *)num, nb = 2;
        while (nb) {
@@ -61,12 +61,15 @@ 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]);