예제 #1
0
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 */
  }
}
예제 #2
0
파일: prodcons.c 프로젝트: agoryu/ASE
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 */
    }
}