Behavior of isready on unbuffered Channel

I think you are reading the documentation wrong. I take " Determine whether a Channel has a value stored to it., an isreadyin general, means that the channel is ready to be read, not that it is ready to be written to. Specifically, "For unbuffered channels returnstrue if there are tasks waiting on a [put!]" sounds like a take!` won’t block.