title: Python 3: multiprocessing, EOFError: EOF when reading a line
body: <p>I wish to have a process continually monitoring RPi input, and set a variable (I have chosen a queue) to True or False to reflect the debounced value. Another process will then capture an image (from a stream).  I have written some code just to check I can get multiprocessing and signalling (the queue) working ok (I'm an amature coder...).</p>
  
  <p>It all works fine with threading, but multiprocessing is giving an odd error. Specifically 'multiprocessing, EOFError: EOF when reading a line'. Code outputs:-</p>
  
  <pre><code>this computer has the following number of CPU's 6
  OK, started thread on separate processor, now we monitor variable
  enter something, True is the key word:
  Process Process-1:
  Traceback (most recent call last):
    File "c:\Python34\lib\multiprocessing\process.py", line 254, in _bootstrap
      self.run()
    File "c:\Python34\lib\multiprocessing\process.py", line 93, in run
      self._target(*self._args, **self._kwargs)
    File "C:\Users\Peter\Documents\NetBeansProjects\test_area\src\test4.py", line 16, in Wait4InputIsTrue
      ValueIs = input("enter something, True is the key word: ")
  EOFError: EOF when reading a line
  </code></pre>
  
  <h1>This module monitors the 'port' (I am using the keyboard as an input):</h1>
  
  <pre><code>#test4.py
  from time import sleep
  from multiprocessing import Lock
  
  def Wait4InputIsTrue(TheVar, TheLock):
      while True:
          sleep(0.2)
          TheLock.acquire()
          #try:
          ValueIs = input("enter something, True is the key word: ")
          #except:
          #    ValueIs = False
          if ValueIs == "True":
              TheVar.put(True)
              print("changed TheVar to True")
          TheLock.release()
  </code></pre>
  
  <h1>This module monitors the status, and acts on it:</h1>
  
  <pre><code>#test5.py
  if __name__ == "__main__":
      from multiprocessing import Process, Queue, Lock, cpu_count
      from time import sleep
      from test4 import Wait4InputIsTrue
  
      print("this computer has the following number of CPU's", cpu_count())
      LockIt = Lock()
      IsItTrue = Queue(maxsize = 3)
  
      Wait4 = Process(target = Wait4InputIsTrue, args = (IsItTrue, LockIt))
      Wait4.start()
  
      print("OK, started thread on separate processor, now we monitor variable")
  
      while True:
          if IsItTrue.qsize():
              sleep(0.1)
              print("received input from separate thread:", IsItTrue.get())
  </code></pre>
  
  <p>Note that I have tried adding a try: to the input statement in test4.py, in which case it keeps printing "enter something, True is the key word: " indefinitely, without a cr.</p>
  
  <p>I added Lock in wild attempt to fix it, makes no difference</p>
  
  <p>Anyone any idea why this is happening?</p>