title: Stop listening for input on Thread
body: <p>In Python I have my main program which is basically a console 'gui' class. Its main method is a running thread that keeps the mains screen with options printed, and keeps waitin for user to input a choice.</p>
  
  <p>The gui class has another object initialized that has its own running Threads. One of the Threads in this other object basically requires the main GUI thread to switch to a different mode / stop, but because it always 'pauses' on any input(), it will never switch.</p>
  
  <p>So is there way, since I have access to the gui thread from the other object, to send an empty stdin to the gui thread so it gets over input()?</p>
  
  <p>Example: (not actual code)</p>
  
  <pre class="lang-py prettyprint-override"><code>from threading import Thread
  
  class Gui:
  
    def __init__(self):
      self.mainthread = Thread(target=self.console_loop, daemon=True)
      self.server = Server(self.mainthread)
      self.mainthread.start()
      self.mainthread.join()
  
    def console_loop(self):
      while True:
        if some_terminating_condition:
          break
        while self.server.guiloop:
          """
          .
          . various code
          .
          """
          a = input()
          if a == "Some input":
            self.server.guiloop = False
            self.server.do_stuff()
        while not self.server.guiloop:
          """
          More code
          """
  
  
  class Server:
  
    def __init__(self, guithread):
      self.guiloop = True
      self.gui_thread = guithread
  
    def do_stuff(self):
      self.guiloop = False
      """
      Code to stop gui waiting for input &lt;-- What I need
      """
      # Arbitrary code
  
  
  </code></pre>
  
  <p>Sorry for any mistakes, wrote it on the fly, since my code is too big to copy over</p>