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

欢迎!请参阅关于页面以获取有关如何操作的一些更多信息。

0投票
core.async

我们是否希望这在消费者走开场景中使用,或者 baked into 在信道实施中?

`
(defn drain!
"完全消耗并丢弃一个信道。返回一个信道每当ch被完全消耗时
会关闭的信道"
[ch]
(go-loop []
(if (some? (<! ch))

 (recur))))

`

2个答案

0投票

评论由:samumbach发表

当一个信道的缓冲区已满时,close!和/或在同一多信道上的untap是不够的以取消阻塞其他连接。这是drain!有必要的一个具体案例;确保在untap/close之后进行drain以避免竞争条件。

0投票
...