wip
This commit is contained in:
parent
0142f418c2
commit
f8fd641287
2 changed files with 9 additions and 7 deletions
|
|
@ -53,7 +53,9 @@
|
|||
id (bytes->string id)]
|
||||
(if-let [cb (get @callbacks id)]
|
||||
(do (swap! callbacks dissoc id)
|
||||
(cb reply))
|
||||
;; callbacks run in their own threads to not block the
|
||||
;; processor
|
||||
(future (cb reply)))
|
||||
(let [value* (find reply "value")
|
||||
value (some-> value*
|
||||
second
|
||||
|
|
@ -237,8 +239,11 @@
|
|||
(let [id (next-id)
|
||||
prom (promise)
|
||||
callback (fn [reply]
|
||||
(let [[name-sym vars] (bencode->namespace pod reply)]
|
||||
(callback {:name name-sym :vars vars :done prom})))]
|
||||
(try (let [[name-sym vars] (bencode->namespace pod reply)]
|
||||
(callback {:name name-sym :vars vars :done prom}))
|
||||
(catch Throwable e
|
||||
(binding [*out* *err*]
|
||||
(prn e)))))]
|
||||
(swap! callbacks assoc id callback)
|
||||
(write (:stdin pod)
|
||||
{"op" "load-ns"
|
||||
|
|
|
|||
|
|
@ -6,8 +6,6 @@
|
|||
(let [env (:env ctx)
|
||||
ns-name name
|
||||
sci-ns (sci/create-ns ns-name)]
|
||||
#_(swap! env assoc-in [:namespaces ns-name :obj]
|
||||
sci-ns)
|
||||
(sci/binding [sci/ns sci-ns]
|
||||
(doseq [[var-name var-value] vars]
|
||||
(cond (ifn? var-value)
|
||||
|
|
@ -15,8 +13,7 @@
|
|||
(sci/new-var
|
||||
(symbol (str ns-name) (str var-name)) var-value))
|
||||
(string? var-value)
|
||||
(sci/eval-string* ctx var-value))))
|
||||
#_(prn (get-in @env [:namespaces ns-name])))
|
||||
(sci/eval-string* ctx var-value)))))
|
||||
(when done (deliver done :ok)))
|
||||
|
||||
(def load-pod
|
||||
|
|
|
|||
Loading…
Reference in a new issue