aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Wendell <pwendell@gmail.com>2013-06-27 21:47:22 -0700
committerPatrick Wendell <pwendell@gmail.com>2013-06-27 21:47:22 -0700
commit62c2c6b8561a00b2103fe5fb80b42b9975a5b8db (patch)
tree1558af4a2fdf6604d1c54a8dd0c9657d659c9e4c
parenta55190d3143dae9a29650819621396175ef8a0dd (diff)
downloadspark-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.scala11
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)
}
}