A channel is a simple abstraction around a giant mutex.  It does not scale throughput very well and has terrible latency performance to boot.<p>Something like the disruptor (<a href="https:&#x2F;&#x2F;lmax-exchange.github.io&#x2F;disruptor&#x2F;" rel="nofollow">https:&#x2F;&#x2F;lmax-exchange.github.io&#x2F;disruptor&#x2F;</a>) is more along the lines of what I was thinking of.  Without generics support you have to write it over and over again for each use case.