Guest User

Untitled

a guest
Feb 19th, 2018
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.53 KB | None | 0 0
  1. class Deferred() {
  2. private var fs: Seq[() => Any] = Nil
  3.  
  4. def apply(f: => Any): Unit = {
  5. fs = { () =>
  6. f
  7. } +: fs
  8. }
  9.  
  10. def runDeferred(): Unit = fs.reverse foreach { _.apply }
  11. }
  12.  
  13. def deferrable[A](f: Deferred => A): Unit = {
  14. val d = new Deferred()
  15. try {
  16. f(d)
  17. } finally {
  18. d.runDeferred()
  19. }
  20. }
  21. private def run() = deferrable { defer =>
  22. defer(println("shutting down..."))
  23. defer(Database.shutDown())
  24. defer(println("shutdown completed!"))
  25.  
  26. Database.setup()
  27. val result = MyTable.findAll()
  28. println(result)
  29. }
Add Comment
Please, Sign In to add comment