A seguir: Aula 8 - Exercícios Acima: Escalonamento de uma impressora Anterior: Escalonamento de uma impressora
void requestWrite() {
lock(mutex);
myTicket = ticket++;
while ((nr > 0)
(!waiting.iAmTheBest(myTicket))) {
waiting.enter(myTicket, mutex);
}
nww++; nwr-;
waiting.ok(myTicket);
unlock(mutex);
}
void releaseWrite() {
lock(mutex);
nww-;
waiting.select(mutex);
unlock(mutex);
}
void releaseRead() {
lock(mutex);
nr-;
waiting.select(mutex);
unlock(mutex);
}