2024 Clojure 状态调查!中分享您的想法。

欢迎!请查看关于页面了解更多关于工作原理的信息。

0
core.async

文档字符串的引用:"(link: ...)每个障碍必须在接受下一个项目分发之前接受。"

`
(def ch (chan))

(def m (mult ch))

(def t-1 (chan))
(def t-2 (chan))
(def t-3 (chan))

(def t-1-takes (atom []))

(defn log [l] (partial swap! l conj))

(tap m t-1)
(tap m t-2)
(tap m t-3)

(close! t-3)

(take! t-1 (log t-1-takes))

(take! t-1 (log t-1-takes)) ;; 这个取不应该在这之前发生

                        ;; a take on t-2

(put! ch true)

(put! ch true)

@t-1-takes

;-> [true true] ;; 但是它确实发生了。
`

原因是当已关闭的连接的内部原子计数器减少了两次时。

2 个答案

0

评论者:lgs32a

修复clj/cljs中的此问题

0
...