评论者:mpenet
嗨Ghadi,
感谢你的反馈,但我认为你没有正确阅读我的补丁。
我没有改变你提到的case(承诺),唯一改变的是,在clojure.core.async.impl.dispatch/run被调用的几个少数情况下(意味着函数在一个全局定义的、除了thread以外.core.async中所有内容均使用的线程池中执行),可以通过提供线程池的函数参数,**可选择**地来完成。默认值不变,如果不传递执行器,你将获得完全不受任何改变的影响的当前master core.async行为。
一些人提到了需要这个功能,有些人公开提及,有些人私下提及,包括我自己,我知道有一个团队因为同样的问题将他们的系统从一个从core.async转换到了manifold,因为后者有更多类似这样的控制开关。
最后,这与控制有关,它不会对core.async及其当前执行模型造成任何改变,如果你不关心它,但这对需要这种精细调节的人来说很重要。
几天前在Twitter上也再次提到了这个问题:https://twitter.com/puredanger/status/576378306062262272,你肯定也能在IRC日志中找到它的参考。
如果可能的话,我会将其作为一个库发布,但由于涉及的代码有时非常根深蒂固,几乎在不对整个库进行分叉的情况下就无法执行,因此有了这个补丁。