title: Python multiprocessing TypeError: join() takes exactly 1 argument (2 given)
body: <p>I've made a lot of studying about multiprocessing!
  Basically I'm downloading data from an API and insert in a database.</p>
  
  <p>I made a pool and access the function of download with a pool.imap, make a tuple with the results and insert all in one shot in DB.</p>
  
  <p>I access this function repeatedly and at some point in time my process got hang!
  I've tried to follow <a href="https://docs.python.org/2/library/multiprocessing.html#multiprocessing.pool.multiprocessing.Pool.map" rel="nofollow noreferrer">https://docs.python.org/2/library/multiprocessing.html#multiprocessing.pool.multiprocessing.Pool.map</a> and access the join with timeout.</p>
  
  <p>But pool.join(timeout) returns "TypeError: join() takes exactly 1 argument (2 given)". I suppose that the one argument is the default "self"?</p>
  
  <p>A short chunk of the code:</p>
  
  <pre><code>timeout = 10
  pool = Pool(10)
  in_tuple = [x for x in pool.imap(multi_details,items) if x is not None]
  pool.close()
  pool.join(timeout) # from the documentation I should be able to put the timeout in join
  
  writing_to_database(in_tuple)
  
  # function that generate the content for DB
  def multi_details(item):
          tuple = get_details(item)
          return tuple
  </code></pre>
  
  <p>I see different way to create processes and generate terminate() or join(timeout) but neither one is using imap/map - which are a much simpler to work in my case!</p>