Graj slick i Async - czy to jest wyścig?
CzytanieKod Play-Slick DBAction, Myślałem, że ten kod może zawierać warunki wyścigu:
object DBAction{
// snip
def apply(r: (RequestWithDbSession) => Result)(implicit app:Application) = {
Action { implicit request =>
AsyncResult {
DB.withSession{ s:scala.slick.session.Session =>
Future(r( RequestWithDbSession(request,s) ))(executionContext)
}
}
}
}
Funkcjar
działa w przyszłości, powithSession
zwrócił przyszły [Wynik] i zadzwoniłsession.close()
. Czy w tym kodzie jest sytuacja wyścigu?