gpt4 book ai didi

Clojure 如何停止所有 go block 或关闭 core.async 中的所有 channel

转载 作者:行者123 更新时间:2023-12-03 23:53:17 27 4
gpt4 key购买 nike

当我使用 repl 中的 core.async 时,go 块会远离我,因为我失去了用于停止它的 channel ,因为我重新加载了命名空间。例如,如果我从 repl 运行它:

(go (when (not= c (second (async/alts! [c (async/timeout 1000)]))) 
(println "hello")))

然后我重新加载命名空间并且 c 丢失了。现在我有“你好”向我的 REPL 发送垃圾邮件,直到时间结束。如果我可以关闭所有 channel 或杀死所有 go 块,那么我可以省去重新启动 REPL 的麻烦。

最佳答案

据我所知,没有办法在全局范围内做到这一点。一种技术是使用可用于关闭任何循环的控制 channel 。 pub/sub东西可能适用于全局控制 channel 。

关于Clojure 如何停止所有 go block 或关闭 core.async 中的所有 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21744052/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com