Fork me on GitHub
#core-async
<
2021-03-18
>
didibus17:03:33

I'm a little confused with core.async, when you attach a transducer to a channel or when you use pipeline, where does the computation happen? And so how does the concurrency work? Normally I think of each go-block as a unit of concurrency, so if I have 4 go-block I've got 4 concurrent processes running. But with a transducer on a channel I'm a bit confused.

didibus17:03:27

Same thing with pipeline, it has the parallelization setting, what happens under the hood? Does it create new threads or does it dispatch to the go thread pool?

Alex Miller (Clojure team)17:03:41

the transducer may be applied by either the producer or the consumer thread of the channel (it depends)

Alex Miller (Clojure team)17:03:55

pipeline creates its own thread pool

didibus06:03:26

Each pipeline will? Or all pipelines share one?