Added more docstrings

This commit is contained in:
James Reeves 2012-02-11 21:07:22 +00:00
parent d960f97921
commit ee9c8eecad

View file

@ -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)))))