-
-
-
CENAPAD-MGCO
A seguir: About this document ... Acima: Sidney Batista Filho Anterior: 4a Questão
class Bar {
Key Mutex; CBed Bed;
int NumProc = 0; // no. de processos na barreira
int NumProcReleased = 0; // no. de processos liberados da barreira
void barrier(int b) {
Lock(Mutex);
NumProc++;
while(NumProc < b)
Wait(Bed, Mutex);
NumProcReleased++;
if (NumProcReleased == b)
NumProc = 0;
else
Wakeup(Bed, Mutex);
Unlock(Mutex);
}
} // Bar