title: python multiprocessing - process hangs on join for large queue
body: <p>I'm running python 2.7.3 and I noticed the following strange behavior. Consider this minimal example:</p>
  
  <pre><code>from multiprocessing import Process, Queue
  
  def foo(qin, qout):
      while True:
          bar = qin.get()
          if bar is None:
              break
          qout.put({'bar': bar})
  
  if __name__ == '__main__':
      import sys
  
      qin = Queue()
      qout = Queue()
      worker = Process(target=foo,args=(qin,qout))
      worker.start()
  
      for i in range(100000):
          print i
          sys.stdout.flush()
          qin.put(i**2)
  
      qin.put(None)
      worker.join()
  </code></pre>
  
  <p>When I loop over 10,000 or more, my script hangs on <code>worker.join()</code>. It works fine when the loop only goes to 1,000.</p>
  
  <p>Any ideas?</p>