评论者:mpenet
嗨Ghadi,
感谢您的反馈,但我认为您没有正确阅读我的补丁。
我并没有更改您提到的案例(promise),唯一更改的是,当调用clojure.core.async.impl.dispatch/run时,即该函数在全局定义的线程池中运行,该线程池用于core.async中的除thread之外的所有内容,现在可以通过一个提供线程池的函数参数进行选择性地完成。默认值未更改,如果您不传递执行器,则得到当前的master core.async行为,没有任何变化。
少有人提到这种需求,一些在公开场合提到,一些在私下提到,包括我自己,我还知道一个团队因为后者提供了更多类似的控制选项,所以他们将从core.async切换到manifold。
最终,这是关于控制的问题,如果您对此不感兴趣,这并不改变core.async及其当前执行模型,但对于需要这种精细调整的人来说,这是重要的。
几天前在twitter上又提到了这个问题: https://twitter.com/puredanger/status/576378306062262272,您肯定也能在irc日志中找到相关的引用。
如果可能的话,我会将其作为一个库发布,但涉及到的代码有时非常深植,如果不进行整个库的分支,几乎无法做到这一点,因此产生了这个补丁。