Slide 19
Slide 19 text
The auction runner!
19!
def runAuction(req: Offer, rules: AuctionRules) = {!
val responseFutures = bidderActorList.map {!
!_.!!![Option[Bid]](req, MAX_RESPONSE_TIME)!
}!
try {!
Futures.awaitAll(responseFutures) // Block!
} catch {!
case e: FutureTimeoutException => // One or more timeouts!
}!
val timelyResponses = responseFutures.flatMap(_.result)!
rules.determineResult(req, timelyResponses)!
}!