code: def get(self, timeout=None, block=True, throw_dead=True):
          
          _vv and IOLOG.debug('%r.get(timeout=%r, block=%r)', self, timeout, block)
          try:
              msg = self._latch.get(timeout=timeout, block=block)
          except LatchError:
              raise ChannelError(self.closed_msg)
          if msg.is_dead and throw_dead:
              msg._throw_dead()
          return msg
docs: Sleep waiting for a message to arrive on this receiver.
  
          :param float timeout:
              If not :data:`None`, specifies a timeout in seconds.
  
          :raises mitogen.core.ChannelError:
              The remote end indicated the channel should be closed,
              communication with it was lost, or :meth:`close` was called in the
              local process.
  
          :raises mitogen.core.TimeoutError:
              Timeout was reached.
  
          :returns:
              :class:`Message` that was received.