void producteur (void * args) { int i = 100; while (i) { sem_down(&vide); /* dec. nb places libres */ sem_down(&mutex); /* entree en section critique */ // mettre_objet(); /* mettre l'objet dans le tampon */ produire_objet(); /* produire l'objet suivant */ sem_up(&mutex); /* sortie de section critique */ sem_up(&plein); /* inc. nb place occupees */ } }
void producteur (void* arg) { if(arg){ fprintf(stderr, "ERROR: fonction producteur sans arguments"); return; } objet_t objet ; while (1) { produire_objet(&objet); /* produire l'objet suivant */ sem_down(&vide); /* dec. nb places libres */ sem_down(&mutex); /* entree en section critique */ mettre_objet(objet); /* mettre l'objet dans le tampon */ sem_up(&mutex); /* sortie de section critique */ sem_up(&plein); /* inc. nb place occupees */ } }