parent
bdade39efd
commit
2ab7fc5464
@ -1 +1,38 @@
|
||||
#include "../includes/main.h"
|
||||
|
||||
void traiterTaches(Tache **tabTache, int p_tmax)
|
||||
{
|
||||
int i;
|
||||
int dateCourante;
|
||||
ListeAttente *file;
|
||||
Tache *tacheCourante;
|
||||
Liste successeurs;
|
||||
Tache *successeur;
|
||||
|
||||
file = NULL;
|
||||
initialiserFileAttente(tabTache, p_tmax, &file);
|
||||
while (!estVide(file))
|
||||
{
|
||||
tacheCourante = defiler(&file);
|
||||
dateCourante = tacheCourante->dateDebut;
|
||||
successeurs = tacheCourante->succ;
|
||||
while (successeurs)
|
||||
{
|
||||
successeur = trouverTache(tabTache, p_tmax, successeurs->tache);
|
||||
successeur->dateDebut = max(successeur->dateDebut, dateCourante + tacheCourante->duree);
|
||||
successeur->nbPred--;
|
||||
if (successeur->nbPred == 0)
|
||||
enfiler(&file, successeur);
|
||||
successeurs = successeurs->nxt;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < p_tmax; i++)
|
||||
{
|
||||
if (tabTache[i]->nbPred > 0)
|
||||
{
|
||||
printf("toutes les taches n'ont pas ete executees");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in new issue