This will still block if the channel is full.

use something like this: https://gist.github.com/daniel-garcia/e8d31dab3d8ac4b31ea6