def read1(self):
        """
        Put MiniBuffer in cbreak mode to process character by character.
        Normally the MiniBuffer only sends out its reading after a LF.
        With this method, MiniBuffer sends out its reading after every
        single char.
        The caller is responsible for break out this reading explicitly.
        """
        # TODO: Currently not supported by ShMiniBuffer
        try:
            self.stash.mini_buffer.cbreak = True
            while True:
                try:
                    yield self._buffer.pop()
                except IndexError:
                    time.sleep(self.holdback)

        finally:
            self.stash.mini_buffer.cbreak = False

        Put MiniBuffer in cbreak mode to process character by character.
        Normally the MiniBuffer only sends out its reading after a LF.
        With this method, MiniBuffer sends out its reading after every
        single char.
        The caller is responsible for break out this reading explicitly.
        
system/shio.py