diff options
author | Paul Phillips <paulp@improving.org> | 2011-10-18 17:57:48 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2011-10-18 17:57:48 +0000 |
commit | ee365acb1752e7d789f32df3322a23526377f736 (patch) | |
tree | 5ec26212ca110f230c82ea070b3efdbf2602c161 /test/files/run | |
parent | d0a36c66cb18d94d15d44e5a04ed91ab00a43418 (diff) | |
download | scala-ee365acb1752e7d789f32df3322a23526377f736.tar.gz scala-ee365acb1752e7d789f32df3322a23526377f736.tar.bz2 scala-ee365acb1752e7d789f32df3322a23526377f736.zip |
Shutdown hook modification.
Don't mark shutdown hooks as daemon threads, although it does not seem
to make any difference. Instead have the code which waits for all
threads to be complete be smarted about which codes to monitor. No
review.
Diffstat (limited to 'test/files/run')
-rw-r--r-- | test/files/run/shutdownhooks.check | 3 | ||||
-rw-r--r-- | test/files/run/shutdownhooks.scala | 37 |
2 files changed, 40 insertions, 0 deletions
diff --git a/test/files/run/shutdownhooks.check b/test/files/run/shutdownhooks.check new file mode 100644 index 0000000000..29956956e3 --- /dev/null +++ b/test/files/run/shutdownhooks.check @@ -0,0 +1,3 @@ +Fooblitzky! +main#shutdown. +Test#shutdown. diff --git a/test/files/run/shutdownhooks.scala b/test/files/run/shutdownhooks.scala new file mode 100644 index 0000000000..7fe5d129d6 --- /dev/null +++ b/test/files/run/shutdownhooks.scala @@ -0,0 +1,37 @@ +object Test { + scala.sys.addShutdownHook { + Thread.sleep(1000) + println("Test#shutdown.") + } + + def daemon() = { + val t = new Thread { + override def run() { + Thread.sleep(10000) + println("Hallelujah!") // should not see this + } + } + t.setDaemon(true) + t.start() + t + } + + def nonDaemon() = { + val t = new Thread { + override def run() { + Thread.sleep(100) + println("Fooblitzky!") + } + } + t.start() + t + } + + def main(args: Array[String]): Unit = { + daemon() + nonDaemon() + scala.sys.addShutdownHook { + println("main#shutdown.") + } + } +} |