The core.async docstrings for take! and put! currently only state that, if on-caller? is true, fn1 is called on the calling thread when the value is immediately available/the put is immediately accepted. They do not make clear that, when the value is not immediately available/the put is not immediately accepted, on-caller? also determines whether fn1 is called on the then 'calling' thread or the dispatch thread pool. It is only indicated that fn1 may be run in a fixed-size dispatch thread pool' in both cases. The docstring of clojure.core.async.impl.dispatch/run does refer to the :on-caller? meta. Is this analysis correct? If so, wouldn't it make sense to add this information in the docstrings?