Don't use to_a/each (splat) on the channels argument; if it is a socket, it blocks indefinitely... gross.