Improving Channel throughput: batching

I don’t think this is true? push!(channel, x) is just a thin wrapper of put!(channel, x)

In my mind all collections define push! should define append!; i.e., I expect append!(a, b) = foldl(push!, b; init = a) to be always a valid definition. Since Channel already defines push!, I think it’s natural to have append!.

Yes, I agree that’s probably the best first step. I expect it’d cover “90%” of use cases. We can worry about generalization later.

Another fun special case that could be optimized (and perhaps we’d need to worry about) is append!(::Channel, ::Channel).

2 Likes