From 4df3e565576e4b4c9d2bd0a80482163f9c81da8f Mon Sep 17 00:00:00 2001 From: Michiel Borkent Date: Wed, 20 May 2020 13:52:11 +0200 Subject: [PATCH] Upgrade to pod callbacks (babashka/babashka.pods#6) --- babashka.pods | 2 +- src/babashka/impl/pods.clj | 3 ++- test-resources/pod.clj | 21 +++++++++++---------- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/babashka.pods b/babashka.pods index 8f16139a..fb6e739a 160000 --- a/babashka.pods +++ b/babashka.pods @@ -1 +1 @@ -Subproject commit 8f16139ab6e73a91aeb5fe97b398b30670e3fc9b +Subproject commit fb6e739aeed8ada6720318b788549f72d37640e8 diff --git a/src/babashka/impl/pods.clj b/src/babashka/impl/pods.clj index d72e0e2c..386ca2d4 100644 --- a/src/babashka/impl/pods.clj +++ b/src/babashka/impl/pods.clj @@ -5,4 +5,5 @@ (def pods-namespace {'load-pod (with-meta pods/load-pod - {:sci.impl/op :needs-ctx})}) + {:sci.impl/op :needs-ctx}) + 'invoke pods/invoke}) diff --git a/test-resources/pod.clj b/test-resources/pod.clj index e55459e5..c92e0b79 100644 --- a/test-resources/pod.clj +++ b/test-resources/pod.clj @@ -3,7 +3,6 @@ (:require [babashka.pods :as pods] [bencode.core :as bencode] [cheshire.core :as cheshire] - [clojure.core.async :as async] [clojure.edn :as edn] [clojure.java.io :as io]) (:import [java.io PushbackInputStream]) @@ -54,7 +53,11 @@ [{"name" "pod.test-pod" "vars" [{"name" "add-sync"} {"name" "range-stream" - "async" "true"} + "code" " +(defn range-stream [val-cb done-cb & args] + (babashka.pods/invoke \"pod.test-pod\" 'pod.test-pod/range-stream* args + {:handlers {:success #(val-cb (:value %)) :done (fn [m] (done-cb m))}}) + nil)"} {"name" "assoc"} {"name" "error"} {"name" "print"} @@ -75,7 +78,7 @@ {"value" (write-fn (apply + args)) "id" id "status" ["done"]}) - pod.test-pod/range-stream + pod.test-pod/range-stream* (let [rng (apply range args)] (doseq [v rng] (write @@ -129,13 +132,11 @@ (do (debug "Running synchronous add test") (prn ((resolve 'pod.test-pod/add-sync) 1 2 3)) - (debug "Running async stream test") - (let [chan ((resolve 'pod.test-pod/range-stream) 1 10)] - (loop [] - (when-let [x (async/