Howdy Charles,
For a static mix of sources there's async/merge [1], and it behaves the
almost exactly way you describe, impl here [2].
Stepping back, the source chan-of-chans being closed represents value
production being fully in flight, while the merged channel being closed
represents consump
Howdy --
Trying to use core.async's mix facility, one difficulty I've run into is
the lack of a means to close the output channel only after al inputs have
been exhausted. In the interim, I've ended up using the below instead --
which lacks some of the facilities provided by the mix interface (