Make unload and invoke take ret val of load-pod

This commit is contained in:
Michiel Borkent 2020-10-21 14:10:31 +02:00
parent a522cb834f
commit df334946b9
2 changed files with 27 additions and 20 deletions

View file

@ -6,9 +6,9 @@
([pod-spec opts] (jvm/load-pod pod-spec opts))) ([pod-spec opts] (jvm/load-pod pod-spec opts)))
(defn unload-pod (defn unload-pod
([pod-id] (unload-pod pod-id {})) ([pod-id-or-pod] (unload-pod pod-id-or-pod {}))
([pod-id opts] (jvm/unload-pod pod-id opts))) ([pod-id-or-pod opts] (jvm/unload-pod pod-id-or-pod opts)))
(defn invoke (defn invoke
([pod-id sym args] (invoke pod-id sym args {})) ([pod-id-or-pod sym args] (invoke pod-id-or-pod sym args {}))
([pod-id sym args opts] (jvm/invoke pod-id sym args opts))) ([pod-id-or-pod sym args opts] (jvm/invoke pod-id-or-pod sym args opts)))

View file

@ -190,10 +190,16 @@
(def pods (atom {})) (def pods (atom {}))
(defn get-pod-id [x]
(if (map? x)
(:pod/id x)
x))
(defn lookup-pod [pod-id] (defn lookup-pod [pod-id]
(get @pods pod-id)) (get @pods pod-id))
(defn destroy [pod-id] (defn destroy [pod-id-or-pod]
(let [pod-id (get-pod-id pod-id-or-pod)]
(when-let [pod (lookup-pod pod-id)] (when-let [pod (lookup-pod pod-id)]
(if (contains? (:ops pod) :shutdown) (if (contains? (:ops pod) :shutdown)
(do (write (:stdin pod) (do (write (:stdin pod)
@ -205,7 +211,7 @@
(doseq [[ns-name _] (:namespaces pod)] (doseq [[ns-name _] (:namespaces pod)]
(rns ns-name)))) (rns ns-name))))
(swap! pods dissoc pod-id) (swap! pods dissoc pod-id)
nil) nil))
(def next-pod-id (def next-pod-id
(let [counter (atom 0)] (let [counter (atom 0)]
@ -332,8 +338,9 @@
@prom)) @prom))
(defn invoke-public [pod-id fn-sym args opts] (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))) (invoke pod fn-sym args opts)))
(defn unload-pod [pod-id] (defn unload-pod [pod-id-or-pod]
(destroy pod-id)) (destroy pod-id-or-pod))