欢迎!有关如何操作的更多信息,请参阅关于页面。
我们想要在消费者走开场景中这样做,还是想要将其整合到通道实现中?
`(defn drain!"完全消耗并丢弃一个通道。返回一个当ch完全被消耗时关闭的通道"[ch](go-loop [](if (some? (<! ch))
`
(recur))))
评论由samumbach发表
当一个通道的缓冲区已满时,对同一个多通道上的通道执行 close!和/或{{untap}}是不够的,以解除其他通道的阻塞。当需要drain!时,这是一个特定情况;在untap/close之后确保drain,以避免竞争条件。
close!
drain!