A difference between zero capacity and one capacity bounded channel is that call try_send() return OK only when there is already receiver wait on it. And this is useful is somecase.
Golang and crossbeam-channel both have zero capacity bounded channel, maybe we should support it.