summaryrefslogtreecommitdiff
path: root/test/files/run/shutdownhooks.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-10-18 17:57:48 +0000
committerPaul Phillips <paulp@improving.org>2011-10-18 17:57:48 +0000
commitee365acb1752e7d789f32df3322a23526377f736 (patch)
tree5ec26212ca110f230c82ea070b3efdbf2602c161 /test/files/run/shutdownhooks.scala
parentd0a36c66cb18d94d15d44e5a04ed91ab00a43418 (diff)
downloadscala-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/shutdownhooks.scala')
-rw-r--r--test/files/run/shutdownhooks.scala37
1 files changed, 37 insertions, 0 deletions
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.")
+ }
+ }
+}