code: def recv(self):
          
          if self._closed and not self.recv_ready():
              raise ChannelClosed()
          got = self._recv()
          return got
docs: Receive a value from the channel.
          Receiving will always block if no value is available.
          If the channel is already closed,
          :class:`goless.ChannelClosed` will be raised.
          If the channel closes during a blocking ``recv``,
          :class:`goless.ChannelClosed` will be raised. (#TODO)