【发布时间】:2013-09-02 19:28:36
【问题描述】:
阅读Play-Slick DBAction code,我认为这段代码可能包含竞争条件:
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)
}
}
}
}
函数r 在将来的某个时间运行,在withSession 返回一个Future[Result] 并调用session.close() 之后。此代码中是否存在竞争条件?
【问题讨论】:
标签: scala playframework play-slick