Back
alt! (clj)
(source)variable
Examples
kennytilton/matrix
(ns example.pipeline-test
#?(:cljs (:require-macros
[cljs.core.async.macros :as m :refer [go alt!]]))
(:require
#?(:clj [clojure.test :refer :all]
:cljs [cljs.test :as test :refer-macros [deftest is run-tests async testing]])
#?(:clj [clojure.core.async
:refer [put! timeout go chan alt! alt!! <!! <! >! >!!]]
:cljs [cljs.core.async
:refer [buffer dropping-buffer sliding-buffer put! take!
chan promise-chan close! take partition-by offer!
poll! <! >! alts!] :as async])))
(go
(loop []
(let [tout (timeout 1000)
result (alt!
tout :timeout
pipe-out
([r] r))]
(pln :drvr-bam-out result)
(when (not= result :timeout)
(recur)))))
(loop []
(let [tout (timeout 1000)
result (alt!!
tout :timeout
pipe-out
([r] r))]
(pln :drvr-bam-out result)
(when (not= result :timeout)
(recur))))
kennytilton/matrix
(ns example.mxpipe-test
#?(:cljs (:require-macros
[cljs.core.async.macros :as m :refer [go alt!]]))
(:require
#?(:clj [clojure.test :refer :all]
:cljs [cljs.test :as test
:refer-macros [deftest is run-tests async testing]])
#?(:clj
[clojure.core.async
:refer [put! timeout go chan alt! alt!! <!! <! >! >!!]]
:cljs [cljs.core.async
:refer [buffer dropping-buffer sliding-buffer put! take!
chan promise-chan close! take partition-by offer!
poll! <! >! alts!] :as async])))
(let [psn (last (pipe-segs pipe))]
(go
(loop []
(when (pseg)))))
(go
(loop []
))
(loop [n 2]
(pln :looping!!! n)
(when (pos? n)
(let [tout (timeout 10)
result (alt!!
tout :timeout
pipe-out
([r] r))]
(pln :drvr-bam-out result)
(if (= result :timeout)
(reset! running false)
(recur (dec n))))))