Make unload and invoke take ret val of load-pod
This commit is contained in:
parent
a522cb834f
commit
df334946b9
2 changed files with 27 additions and 20 deletions
|
|
@ -6,9 +6,9 @@
|
|||
([pod-spec opts] (jvm/load-pod pod-spec opts)))
|
||||
|
||||
(defn unload-pod
|
||||
([pod-id] (unload-pod pod-id {}))
|
||||
([pod-id opts] (jvm/unload-pod pod-id opts)))
|
||||
([pod-id-or-pod] (unload-pod pod-id-or-pod {}))
|
||||
([pod-id-or-pod opts] (jvm/unload-pod pod-id-or-pod opts)))
|
||||
|
||||
(defn invoke
|
||||
([pod-id sym args] (invoke pod-id sym args {}))
|
||||
([pod-id sym args opts] (jvm/invoke pod-id sym args opts)))
|
||||
([pod-id-or-pod sym args] (invoke pod-id-or-pod sym args {}))
|
||||
([pod-id-or-pod sym args opts] (jvm/invoke pod-id-or-pod sym args opts)))
|
||||
|
|
|
|||
|
|
@ -190,22 +190,28 @@
|
|||
|
||||
(def pods (atom {}))
|
||||
|
||||
(defn get-pod-id [x]
|
||||
(if (map? x)
|
||||
(:pod/id x)
|
||||
x))
|
||||
|
||||
(defn lookup-pod [pod-id]
|
||||
(get @pods pod-id))
|
||||
|
||||
(defn destroy [pod-id]
|
||||
(when-let [pod (lookup-pod pod-id)]
|
||||
(if (contains? (:ops pod) :shutdown)
|
||||
(do (write (:stdin pod)
|
||||
{"op" "shutdown"
|
||||
"id" (next-id)})
|
||||
(.waitFor ^Process (:process pod)))
|
||||
(.destroy ^Process (:process pod)))
|
||||
(when-let [rns (:remove-ns pod)]
|
||||
(doseq [[ns-name _] (:namespaces pod)]
|
||||
(rns ns-name))))
|
||||
(swap! pods dissoc pod-id)
|
||||
nil)
|
||||
(defn destroy [pod-id-or-pod]
|
||||
(let [pod-id (get-pod-id pod-id-or-pod)]
|
||||
(when-let [pod (lookup-pod pod-id)]
|
||||
(if (contains? (:ops pod) :shutdown)
|
||||
(do (write (:stdin pod)
|
||||
{"op" "shutdown"
|
||||
"id" (next-id)})
|
||||
(.waitFor ^Process (:process pod)))
|
||||
(.destroy ^Process (:process pod)))
|
||||
(when-let [rns (:remove-ns pod)]
|
||||
(doseq [[ns-name _] (:namespaces pod)]
|
||||
(rns ns-name))))
|
||||
(swap! pods dissoc pod-id)
|
||||
nil))
|
||||
|
||||
(def next-pod-id
|
||||
(let [counter (atom 0)]
|
||||
|
|
@ -332,8 +338,9 @@
|
|||
@prom))
|
||||
|
||||
(defn invoke-public [pod-id fn-sym args opts]
|
||||
(let [pod (lookup-pod pod-id)]
|
||||
(let [pod-id (get-pod-id pod-id)
|
||||
pod (lookup-pod pod-id)]
|
||||
(invoke pod fn-sym args opts)))
|
||||
|
||||
(defn unload-pod [pod-id]
|
||||
(destroy pod-id))
|
||||
(defn unload-pod [pod-id-or-pod]
|
||||
(destroy pod-id-or-pod))
|
||||
|
|
|
|||
Loading…
Reference in a new issue