Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Deferred() {
- private var fs: Seq[() => Any] = Nil
- def apply(f: => Any): Unit = {
- fs = { () =>
- f
- } +: fs
- }
- def runDeferred(): Unit = fs.reverse foreach { _.apply }
- }
- def deferrable[A](f: Deferred => A): Unit = {
- val d = new Deferred()
- try {
- f(d)
- } finally {
- d.runDeferred()
- }
- }
- private def run() = deferrable { defer =>
- defer(println("shutting down..."))
- defer(Database.shutDown())
- defer(println("shutdown completed!"))
- Database.setup()
- val result = MyTable.findAll()
- println(result)
- }
Add Comment
Please, Sign In to add comment