A seguir: Release Acima: Questão 1 - 9 Anterior: Solução Goedson
request(int n) {
Bed b;
Node n;
lock(mutex);
if (n > q.getHighestPriority() || n > free_resources) {
b = new Bed();
x = new Node(n,b);
q.put(x);
wait(b,mutex);
unlock(mutex);
return x.r;
} else {
free_resources -= n;
unlock(mutex);
return n;
}
}