
class Manager {
key mutex;
AgingQueue waiting;
void requestResource(int i) {
lock(mutex);
while (busy
(!waiting.iAmTheBest(i)) {
waiting.enter(i);
}
busy = true;
waiting.ok(i);
unlock(mutex);
}
void releaseResource() {
lock(mutex);
busy = false;
waiting.select();
unlock(mutex);
}