Newer
Older
package midterm22
import instrumentation.Monitor
// Question 21
// See tests in midterm22.Part6Test.
// Run with `sbt testOnly midterm22.Part6Test`.
class TicketsManager(totalTickets: Int) extends Monitor:
var remainingTickets = totalTickets
// This method might be called concurrently
def getTicket(): Boolean =
if remainingTickets > 0 then
this.synchronized {
remainingTickets -= 1
}
true
else false