title: How to join a list of multiprocessing.Process() at the same time?
body: <p>Given a <code>list()</code> of running <code>multiprocessing.Process</code>-instances, how can I join on all of them and return as soon as one exits without a <code>Process.join</code>-timeout and looping?</p>
  
  <h1>Example</h1>
  
  <pre class="lang-py prettyprint-override"><code>from multiprocessing import Process
  from random import randint
  from time import sleep
  def run():
      sleep(randint(0,5))
  running = [ Process(target=run) for i in range(10) ]
  
  for p in running:
      p.start()
  </code></pre>
  
  <p>How can I block until at least one <code>Process</code> in <code>p</code> exits?</p>
  
  <p>What I don't want to do is:</p>
  
  <pre class="lang-py prettyprint-override"><code>exit = False
  while not exit:
      for p in running:
          p.join(0)
          if p.exitcode is not None:
              exit = True
              break
  </code></pre>