title: Python multiprocessing Queue failure
body: <p>I create 100 child processes</p>
  
  <pre><code>proc_list = [
      Process(target = simulator, args=(result_queue,))
      for i in xrange(100)]
  </code></pre>
  
  <p>and start them</p>
  
  <pre><code>for proc in proc_list: proc.start()
  </code></pre>
  
  <p>Each process puts into the result_queue (instance of multiprocessing.Queue) 10000 tuples after doing some processing.</p>
  
  <pre><code>def simulate(alg_instance, image_ids, gamma, results,
                       simulations, sim_semaphore):
    (rs, qs, t_us) =  alg_instance.simulate_multiple(image_ids, gamma,
                                               simulations)
    all_tuples = zip(rs, qs, t_us)
    for result in all_tuples:
      results.put(result)
    sim_semaphore.release()
  </code></pre>
  
  <p>I should be (?) getting 1000000 tuples at the queue, but after various runs I get these (sample) sizes:
  14912
  19563
  12952
  13524
  7487
  18350
  15986
  11928
  14281
  14282
  7317</p>
  
  <p>Any suggestions?</p>