next up previous
Next: Buffer equânime: comentários Up: Buffer equânime Previous: Buffer equânime: o buffer

Fila com tickets

 
class TicketQueue {

Queue waiting = new Queue();

void enter(int ticket, key k) {

Request rq = new Request(ticket);

waiting.put(rq);

rq.bed.sleep(k);

}

void select(key k) {

Request rq = waiting.best();

rq.bed.wakeup(k);

}

void ok(int ticket) {

waiting.delete(ticket);

}

boolean iAmTheBest(int ticket) {

Request rq = waiting.best();

if (rq == null) return true;

return rq.ticket == ticket;

}

}



Osvaldo Sergio F. de Carvalho
Wed Mar 19 14:56:39 EST 1997