diff options
author | Patrick Wendell <pwendell@gmail.com> | 2013-06-27 21:47:22 -0700 |
---|---|---|
committer | Patrick Wendell <pwendell@gmail.com> | 2013-06-27 21:47:22 -0700 |
commit | 62c2c6b8561a00b2103fe5fb80b42b9975a5b8db (patch) | |
tree | 1558af4a2fdf6604d1c54a8dd0c9657d659c9e4c | |
parent | a55190d3143dae9a29650819621396175ef8a0dd (diff) | |
download | spark-62c2c6b8561a00b2103fe5fb80b42b9975a5b8db.tar.gz spark-62c2c6b8561a00b2103fe5fb80b42b9975a5b8db.tar.bz2 spark-62c2c6b8561a00b2103fe5fb80b42b9975a5b8db.zip |
Forcing Jetty to run as daemon
-rw-r--r-- | core/src/main/scala/spark/ui/JettyUtils.scala | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/core/src/main/scala/spark/ui/JettyUtils.scala b/core/src/main/scala/spark/ui/JettyUtils.scala index 5e20f41501..8cc50bc5b0 100644 --- a/core/src/main/scala/spark/ui/JettyUtils.scala +++ b/core/src/main/scala/spark/ui/JettyUtils.scala @@ -14,6 +14,7 @@ import scala.xml.Node import spark.{SparkContext, Logging} import org.eclipse.jetty.util.log.Log +import org.eclipse.jetty.util.thread.QueuedThreadPool /** Utilities for launching a web server using Jetty's HTTP Server class */ private[spark] object JettyUtils extends Logging { @@ -93,9 +94,15 @@ private[spark] object JettyUtils extends Logging { @tailrec def connect(currentPort: Int): (Server, Int) = { val server = new Server(currentPort) + val pool = new QueuedThreadPool + pool.setDaemon(true) + server.setThreadPool(pool) server.setHandler(handlerList) + Try { server.start() } match { - case s: Success[_] => (server, server.getConnectors.head.getLocalPort) + case s: Success[_] => + sys.addShutdownHook(server.stop()) // Be kind, un-bind + (server, server.getConnectors.head.getLocalPort) case f: Failure[_] => server.stop() logInfo("Failed to create UI at port, %s. Trying again.".format(currentPort)) @@ -103,6 +110,8 @@ private[spark] object JettyUtils extends Logging { connect((currentPort + 1) % 65536) } } + + connect(port) } } |