code: def run_as_coroutine(self, stdin, callbacks):
          
          # Note: We cannot use "yield from", because this package also
          #       installs on Python 2.
          assert isinstance(callbacks, EventLoopCallbacks)
  
          if self.closed:
              raise Exception('Event loop already closed.')
  
          timeout = AsyncioTimeout(INPUT_TIMEOUT, callbacks.input_timeout, self.loop)
          self.running = True
  
          try:
              while self.running:
                  timeout.reset()
  
                  # Get keys
                  try:
                      g = iter(self.loop.run_in_executor(None, self._console_input_reader.read))
                      while True:
                          yield next(g)
                  except StopIteration as e:
                      keys = e.args[0]
  
                  # Feed keys to input processor.
                  for k in keys:
                      callbacks.feed_key(k)
          finally:
              timeout.stop()
docs: The input 'event loop'.