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

欢迎!请查看 关于 页面以了解更多关于该如何工作。

0 投票
core.async

一旦创建了一个 mix,mix 中的 go-loop 将始终递归。显然,输入通道可以被解混合,输出通道可以被关闭,但进程仍然不会终止。

可能 mix 应该支持类似 (stop) 的功能,以便与 mix 相关的进程可以被垃圾回收。对已停止的 mix 的操作可能应该引发异常。

3 条答案

0 投票

评论者:gshayban

从 0.1.278 版本开始,mix 进程在其输出通道关闭时终止(链接:1)。

(链接:1) https://github.com/clojure/core.async/blob/master/src/main/clojure/clojure/core/async.clj#L778

0 投票

评论者:lgs32a

是的,已经通过使用 put! 的新返回行为进行了修复(我找不到关闭此问题的选项)。

0 投票
参考: https://clojure.atlassian.net/browse/ASYNC-39(由 lgs32a 报告)
...