From 82625b57dd2b59abff7f2522b6d4f3adfa3ff18b Mon Sep 17 00:00:00 2001 From: Michiel Borkent Date: Sun, 30 May 2021 12:30:06 +0200 Subject: [PATCH] Tasks: fix edge case --- src/babashka/impl/tasks.clj | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/babashka/impl/tasks.clj b/src/babashka/impl/tasks.clj index 9b870449..2ffbf5cc 100644 --- a/src/babashka/impl/tasks.clj +++ b/src/babashka/impl/tasks.clj @@ -158,17 +158,17 @@ (format " (let [chans (filter babashka.tasks/-chan? %s)] (loop [cs chans] - (let [[v p] (clojure.core.async/alts!! cs) - [task-name v] v - cs (filterv #(not= p %%) cs) - ;; _ (.println System/err (str \"n: \" task-name \" v: \" v)) - ;; check for existence of v, as the channel may already have been consumed once - _ (when v (intern *ns* (symbol task-name) v))] - (when (instance? Throwable v) - (throw (ex-info (ex-message v) - {:babashka/exit 1 - :data (ex-data v)}))) - (when (seq cs) + (when (seq cs) + (let [[v p] (clojure.core.async/alts!! cs) + [task-name v] v + cs (filterv #(not= p %%) cs) + ;; _ (.println System/err (str \"n: \" task-name \" v: \" v)) + ;; check for existence of v, as the channel may already have been consumed once + _ (when v (intern *ns* (symbol task-name) v))] + (when (instance? Throwable v) + (throw (ex-info (ex-message v) + {:babashka/exit 1 + :data (ex-data v)}))) (recur cs)))))" deps) "") #_(format "(def %s (babashka.tasks/-wait %s))" dep dep))