Le consommateur réagit bien
parent
41bb452de6
commit
583887e148
|
@ -38,11 +38,8 @@ int main( int argc, char **argv)
|
||||||
MEMP * memoireP;
|
MEMP * memoireP;
|
||||||
MEMP temp;
|
MEMP temp;
|
||||||
MSG msgtemp;
|
MSG msgtemp;
|
||||||
PROD tprod[MAX_PROD];
|
WINDOW *tWindow[MAX_PROD];
|
||||||
|
|
||||||
int NB_FENETRES = 4;
|
|
||||||
WINDOW *f_haut, *f_bas, *f_milieu1, *f_milieu2;
|
|
||||||
//WINDOW **tWindow;
|
|
||||||
WINDOW *w ;
|
WINDOW *w ;
|
||||||
char c ;
|
char c ;
|
||||||
|
|
||||||
|
@ -84,11 +81,10 @@ int main( int argc, char **argv)
|
||||||
// Si != 0 et si nbDeProd = 0 alors on quitte
|
// Si != 0 et si nbDeProd = 0 alors on quitte
|
||||||
int premier_lancement = 0;
|
int premier_lancement = 0;
|
||||||
|
|
||||||
// Création des fenêtres MARCHE
|
for( i = 0; i < MAX_PROD; i++)
|
||||||
f_haut = creation_fenetre(LINES/NB_FENETRES,0,"F_HAUT") ;
|
{
|
||||||
f_milieu1 = creation_fenetre(LINES/NB_FENETRES,LINES - 3 * (LINES/NB_FENETRES),"F_MILIEU1") ;
|
tWindow[i] = creation_fenetre(LINES / MAX_PROD, i*(LINES/MAX_PROD), "En attente");
|
||||||
f_milieu2 = creation_fenetre(LINES/NB_FENETRES,LINES - 2 * (LINES/NB_FENETRES),"F_MILIEU2") ;
|
}
|
||||||
f_bas = creation_fenetre(LINES/NB_FENETRES, LINES - (LINES/NB_FENETRES),"F_BAS") ;
|
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
|
@ -109,28 +105,15 @@ int main( int argc, char **argv)
|
||||||
|
|
||||||
P(mutex_data);
|
P(mutex_data);
|
||||||
vartemp = (int) memoireP->tete;
|
vartemp = (int) memoireP->tete;
|
||||||
msgtemp = (MSG) memoireP->f[vartemp -1 ];
|
msgtemp = (MSG) memoireP->f[(vartemp -1 + MAX_BUF) % MAX_BUF ];
|
||||||
V(mutex_data);
|
V(mutex_data);
|
||||||
|
|
||||||
if(numTete != vartemp)
|
if(numTete != vartemp)
|
||||||
{
|
{
|
||||||
numTete = vartemp;
|
numTete = vartemp;
|
||||||
c = msgtemp.c;
|
c = msgtemp.c;
|
||||||
|
w = tWindow[msgtemp.idp];
|
||||||
|
|
||||||
switch(msgtemp.idp)
|
|
||||||
{
|
|
||||||
case 0 :
|
|
||||||
w = f_haut;
|
|
||||||
break;
|
|
||||||
case 1 :
|
|
||||||
w = f_milieu1;
|
|
||||||
break;
|
|
||||||
case 2 :
|
|
||||||
w = f_milieu2;
|
|
||||||
break;
|
|
||||||
default :
|
|
||||||
w = f_bas;
|
|
||||||
}
|
|
||||||
waddch(w,c) ;
|
waddch(w,c) ;
|
||||||
wrefresh(w) ;
|
wrefresh(w) ;
|
||||||
}
|
}
|
||||||
|
@ -153,7 +136,9 @@ int main( int argc, char **argv)
|
||||||
endwin() ;
|
endwin() ;
|
||||||
exit(EXIT_SUCCESS);
|
exit(EXIT_SUCCESS);
|
||||||
}
|
}
|
||||||
usleep(5); // Ralentissement volontaire du programme
|
// Ralentissement volontaire du programme
|
||||||
|
// Pour cause d'utilisation excessive de CPU
|
||||||
|
usleep(2);
|
||||||
}
|
}
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue