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?