Added more docstrings
This commit is contained in:
parent
d960f97921
commit
ee9c8eecad
|
@ -3,7 +3,10 @@
|
||||||
(:use ring.adapter.jetty
|
(:use ring.adapter.jetty
|
||||||
ring.server.options))
|
ring.server.options))
|
||||||
|
|
||||||
(defn- try-port [port run-server]
|
(defn- try-port
|
||||||
|
"Try running a server under one port or a list of ports. If a list of ports
|
||||||
|
is supplied, try each port until it succeeds or runs out of ports."
|
||||||
|
[port run-server]
|
||||||
(if-not (sequential? port)
|
(if-not (sequential? port)
|
||||||
(run-server port)
|
(run-server port)
|
||||||
(try (run-server (first port))
|
(try (run-server (first port))
|
||||||
|
@ -12,11 +15,14 @@
|
||||||
(try-port port run-server)
|
(try-port port run-server)
|
||||||
(throw ex))))))
|
(throw ex))))))
|
||||||
|
|
||||||
(defmacro ^:private in-thread [& body]
|
(defmacro ^:private in-thread
|
||||||
|
"Execute the body in a new thread and return the Thread object."
|
||||||
|
[& body]
|
||||||
`(doto (Thread. (fn [] ~@body))
|
`(doto (Thread. (fn [] ~@body))
|
||||||
(.start)))
|
(.start)))
|
||||||
|
|
||||||
(defn- run-server [server destroy]
|
(defn- add-destroy-hook [server destroy]
|
||||||
|
"Add a destroy hook to be executed when the server ends."
|
||||||
(in-thread
|
(in-thread
|
||||||
(try (.join server)
|
(try (.join server)
|
||||||
(finally (if destroy (destroy))))))
|
(finally (if destroy (destroy))))))
|
||||||
|
@ -34,6 +40,6 @@
|
||||||
(fn [port]
|
(fn [port]
|
||||||
(let [options (merge {:port port} options)
|
(let [options (merge {:port port} options)
|
||||||
server (run-jetty handler options)
|
server (run-jetty handler options)
|
||||||
thread (run-server server destroy)]
|
thread (add-destroy-hook server destroy)]
|
||||||
(if join? (.join thread))
|
(if join? (.join thread))
|
||||||
server)))))
|
server)))))
|
||||||
|
|
Reference in a new issue