title: How to use concurrent.futures with timeouts?
body: <p>I am trying to get timeouts to work in python3.2 using the concurrent.futures module. However when it does timeout, it doesn't really stop the execution. I tried with both threads and process pool executors neither of them stop the task, and only until its finished does a timeout become raised. So does anyone know if its possible to get this working?</p>
  
  <pre><code>import concurrent.futures
  import time
  import datetime
  
  max_numbers = [10000000, 10000000, 10000000, 10000000, 10000000]
  
  def run_loop(max_number):
      print("Started:", datetime.datetime.now(), max_number)
      last_number = 0;
      for i in range(1, max_number + 1):
          last_number = i * i
      return last_number
  
  def main():
      with concurrent.futures.ProcessPoolExecutor(max_workers=len(max_numbers)) as executor:
          try:
              for future in concurrent.futures.as_completed(executor.map(run_loop, max_numbers, timeout=1), timeout=1):
                  print(future.result(timeout=1))
          except concurrent.futures._base.TimeoutError:
              print("This took to long...")
  
  if __name__ == '__main__':
      main()
  </code></pre>