-
-
-
CENAPAD-MGCO
A seguir: Fabio Tirelo Acima: Elaine Gouvea Pimentel Anterior: 4a Questão
int b;
class Barrier {
int count = 0; /* Numero de processos na barreira*/
Bed bed;
key mutex;
}
void Barrier:: barrier(int b){
lock(mutex);
count++;
if (count == b){
wakeup(bed, mutex);
}
else wait(bed, mutex);
count--;
unlock(mutex);
}
Se o número de processos na barreira é menor que b, os processos ficam presos. Quando b processos atingem a barreira , todos são liberados.